`

javascript验证表单form的通用函数

阅读更多
原文地址:http://blog.csdn.net/caoshangfei/archive/2007/04/01/1548160.aspx
做web开发的时候,相信大家都会遇到一个比较麻烦的问题。如在做一个form提交的时候,需要验证很多东西。如验证必填项是否填写、该填数字的是否填写了数字、应该为日期型的是否为日期型等等。如果一个form有10几个文本框或者几十个文本框的时候,我想这个工作量还是挺大的。我做项目的时候,就经常遇到这样的问题,为了偷偷懒,自己写了个javascript函数供自己使用,用起来比以前快多了。大家可以直接通过以下链接下载下面的两个文件。
文件1:check.js 请点右键另存为
文件2:test.html 点击右键为下载,直接进入为看演示结果
实现如下:
新建一个check.js文件,文件内容为:
//check.js开始
       //使用方法:在form提交事件里调用:return checkOwnRule(objfrm);传入参数为当前form对象。使用该函数的前提是页面必须包含check.js
       function checkOwnRule(objfrm){
              var inputObj=objfrm.getElementsByTagName("input");
              for (i=0;i<inputObj.length;i++){
                     if (inputObj(i).getAttribute("allownull")=="false"){ //证明该输入框不允许为空,allow为自己在文本框中定义的属性。如<input type="text" name="UserName" allownull="false" hint="用户名">表示用户名不允许为空。Hint属性最好设置,因为在alert的时候会包含该值。
                            if (inputObj(i).value==""){
                                   alert(inputObj(i).getAttribute("hint")+"不能为空!");
                                   inputObj(i).focus();
                                   return false;
                            }
                     }

                     //如果某项的class为digital,表示数字项。则检测是否为数字。
                     if (inputObj(i).getAttribute("className")=="digital"){
                            if (inputObj(i).value!=""&&isNaN(inputObj(i).value)){
                                   alert(inputObj(i).getAttribute("hint")+"必须为数字!");
                                   inputObj(i).focus();
                                   return false;
                            }
                     }
                    

                    
                     if (inputObj(i).getAttribute("isInt")=="true"){ //证明该输入框必须输入整数
                            if (inputObj(i).value.indexOf(".")>=0){
                                   alert(inputObj(i).getAttribute("hint")+"必须为整数!");
                                   inputObj(i).focus();
                                   return false;
                            }    
                     }
                           
                     if (inputObj(i).getAttribute("allowzero")=="false"){ //证明该输入框不允许输入0
                            if (inputObj(i).value==0){
                                   alert(inputObj(i).getAttribute("hint")+"不能为0!");
                                   inputObj(i).focus();
                                   return false;
                            }    
                     }                                
                     //如果isdate为true,表示该项为日期项,则必须输入日期
                     if (inputObj(i).getAttribute("isdate")=="true"){
                            if (inputObj(i).value!=""&&!checkdate(inputObj(i).value)){
                                   alert(inputObj(i).getAttribute("hint")+"必须为正确的日期格式!");
                                   inputObj(i).focus();
                                   return false;
                            }
                     }
             
              }    
              
              var selectObj=objfrm.getElementsByTagName("select");
              for (i=0;i<selectObj.length;i++){
                     if (selectObj(i).getAttribute("allownull")=="false"){ //证明该选择框不允许为空
                            if (selectObj(i).value==""){
                                   alert(selectObj(i).getAttribute("hint")+"不能为空!");
                                   selectObj(i).focus();
                                   return false;
                            }
                     }
              }
              return true;
       }
//该函数为检测是否为日期的函数。
function checkdate(str){
       var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;
       var r = str.match(reg);
       if(r==null)return false;
       r[2]=r[2]-1;
       var d= new Date(r[1], r[2],r[3]);
       if(d.getFullYear()!=r[1])return false;
       if(d.getMonth()!=r[2])return false;
       if(d.getDate()!=r[3])return false;

       return true;
}
//check.js结束
Html文件中的写法:
<style>
.digital {text-align:right}
</style>
<script language="javascript" src="check.js"></script>
<a href="http://www.newbooks.com.cn">点击进入我的网站</a>
<form name="testform" action="" method="post" onsubmit="return checkForm(this)">
用户名:<input type="text" name="username" hint="用户名" allownull="false">(必须输入)<br>
日期:<input type="text" name="testdate" hint="日期" allownull="false" isdate="true">(必须输入且为日期型)<br>
金额:<input type="text" name="testamount" hint="金额" allownull="false" class="digital">(必须输入且为数值型)<br>
数量:<input type="text" name="testqty" hint="数量" allownull="false" class="digital" isInt="true" allowzero="false">(必须输入且必须输入整数,且不能输入0)<br>
<input type="submit" value="提交">
</form>
<script language="javascript">
function checkForm(objform){
if (checkOwnRule(objform)){
        return true;
}else{
        return false;
}
}     
</script>
分享到:
评论

相关推荐

    JS通用表单验证函数1

    在JavaScript编程中,表单验证是网页开发中的一个重要环节,它确保用户输入的数据符合预期的格式和规则,...结合提供的文件,开发者可以学习到更多关于JavaScript表单验证的技巧和最佳实践,进一步提升他们的编程技能。

    用 Javascript 验证表单(form)中的单选(radio)值

    在使用JavaScript进行前端开发的过程中,表单验证是不可或缺的一个环节。表单中的单选按钮(radio)是一种常见且特殊的数据输入方式,允许用户在预设的多个选项中选择一个。由于其特殊的使用方式,验证单选按钮是否...

    javascript表单验证方式一

    本文将深入探讨"javascript表单验证方式一",介绍如何利用JavaScript进行表单验证,确保用户输入的数据符合预设规则,提高用户体验,同时也减轻了服务器端的压力。 首先,表单验证的基本目标是检查用户在HTML表单中...

    基于JavaScript的验证表单通用方案的设计与应用.pdf

    "基于JavaScript的验证表单通用方案的设计与应用" 一、引言 在Web应用中,表单是实现用户交互式访问的重要接口。通过添加JavaScript,可以增加表单的动态交互性、验证用户输入的数据等。本文将介绍一种基于...

    javascript弹出层表单提交代码

    JavaScript弹出层表单提交是一种常见的用户交互设计,它允许用户在不离开当前页面的情况下填写并提交表单数据。这种技术常用于网站的登录、注册、评论或编辑功能,提供了良好的用户体验,因为用户无需跳转到新页面...

    JS通用表单验证函数

    在网页表单提交前,使用JavaScript进行验证可以提高用户体验,减少无效数据提交到服务器,同时减轻后端处理压力。 这个特定的`Check.js`函数实现了对不同类型的表单元素(如text、password、hidden、file、textarea...

    JavaScript检查表单是否为空的函数

    通过本文的介绍,我们可以看到如何利用JavaScript编写一个简单而实用的表单验证函数。这种验证不仅可以提高用户体验,还能避免无效数据被提交至服务器,减轻服务器负担。希望本文能够帮助大家更好地理解和运用表单...

    基于JavaScript的表单验证.zip

    在表单验证中,JavaScript可以通过监听表单的`submit`事件来阻止默认提交行为,然后逐个检查输入字段的值。可以使用`document.getElementById`或`document.querySelector`等方法获取表单元素,再利用`value`属性获取...

    使用FormValidation进行表单验证

    `FormValidation`是一个强大的JavaScript库,它结合了`jQuery`和`Bootstrap`框架,使得表单验证变得更加简单易用。本文将详细介绍如何使用`FormValidation`进行表单验证,并探讨与`jQuery`和`Bootstrap`的集成。 ...

    防止Layui form表单重复提交的实现方法

    在上述函数中,如果需要在禁止表单默认提交行为的同时,与服务器进行数据交互,则可以使用JavaScript的XMLHttpRequest或者现代的Fetch API来异步提交表单数据。使用AJAX提交表单数据的好处是,可以避免页面刷新,...

    ajaxForm异步提交表单(含图片)

    // 提交前的回调函数,可以进行预处理或验证 }, success: function(response, status, xhr, $form) { // 提交成功后的回调函数,处理服务器返回的数据 }, error: function(xhr, status, error) { // 错误处理...

    form表单的异步回调方法

    6. **表单验证(Form Validation)**:在异步提交前,可以添加客户端验证,例如使用HTML5的内置验证特性或自定义JavaScript验证,以减少无效请求对服务器的压力。 7. **错误处理(Error Handling)**:处理网络异常...

    常用的表单提交判断函数

    本文将详细探讨一些常用的JavaScript函数,用于表单提交时的数据验证。 1. **字符串验证** - **非空检查**:`if (inputValue.trim() === '')`,检查输入字段是否为空。 - **长度限制**:`if (inputValue.length |...

    使用jQuery.form插件,实现完美的表单异步提交

    // 提交前的回调函数,可以在此进行数据验证或预处理 console.log('Before submit'); }, success: function(response, statusText, xhr, $form) { // 提交成功后的回调函数,处理服务器返回的数据 console.log...

    layui form表单提交之后重新加载数据表格的方法

    在AJAX技术广泛应用的今天,通常我们会用JavaScript来处理表单的提交,从而无需重新加载页面。通过返回`false`,我们可以让表单提交时不会导致页面跳转,而是执行我们自定义的AJAX请求来与服务器交互,并刷新表格。 ...

    转义表单提交字符处理函数

    ### 转义表单提交字符处理函数 在Web开发中,确保用户输入的数据安全是非常重要的。不正确的处理可能会导致诸如XSS(跨站脚本攻击)等安全问题。因此,对用户提交的数据进行适当的转义是至关重要的。本文将详细介绍...

    EXT异步提交FORM表单

    EXT框架(通常指的是Ext JS)作为一种成熟且功能丰富的JavaScript库,提供了强大的UI组件和便捷的数据处理方法,其中就包括了异步提交FORM表单的功能。 #### 二、EXT异步提交FORM表单的基本原理与实现 ##### 2.1 ...

    javascript方式防止表单重复提交

    JavaScript作为客户端脚本语言,可以通过多种策略来防止用户意外或恶意地多次提交表单。以下是一些关键的知识点: 1. **禁用提交按钮**:最简单的预防方法是在用户点击提交按钮后立即将其禁用。这可以通过监听`...

    jquery-form 异步提交表单

    为了解决这个问题,jQuery Form插件应运而生,它允许我们实现异步(Ajax)表单提交,提高页面的响应性和用户体验。 ### jQuery Form 插件介绍 jQuery Form插件是基于jQuery的一个强大工具,它可以轻松地将任何HTML...

    jquery异步提交form表单

    本文将深入探讨“jQuery异步提交form表单”这一主题,结合给出的标签“源码”和“工具”,我们将分析相关源码,并提供实际应用中的指导。 在传统的HTML表单提交过程中,页面会跳转到服务器返回的结果页面,这在用户...

Global site tag (gtag.js) - Google Analytics