jquery表单验证validate

jquery表单验证

下载地址和Demo 

http://jquery.bassistance.de/validate/jquery.validate.zip 首页: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ jQuery validation 1.7 ---验证插件 需要:jQuery 1.3.2 或 1.4.2版本

 1 <script type="text/javascript">
 2 
 3 $().ready(function() {
 4 
 5     // validate signup form on keyup and submit
 6     /*
 7      * validate()方法:
 8      *         * 验证表单,实际上调用就是validate()方法
 9      *         * validate()方法传入一个json格式数据
10      *              *    rules:表单验证里的验证规则
11      *              *    key:对应的是页面中表单的name属性值
12      *              *    value:对应的验证规则
13      *                 * required:验证是否为空
14      *                 * minlength:验证最小长度
15      *                 * equalTo:对比指定标签的内容是否一致,"#id"
16      *                 * email:验证email地址是否正确
17      *             rules:{
18      *                 key:value
19      *             },
20      *              *     messages:表单验证里的错误提示信息
21      *              *    key:对应的是页面中表单的name属性值
22      *              *    value:错误提示信息
23      *             
24      *             messages:{
25      *                 key:value
26      *             }
27      */
28     $("#signupForm").validate({
29         rules: {
30             firstname: "required",
31             lastname: "required",
32             username: {
33                 required: true,        //验证规则起作用
34                 minlength: 5
35             },
36             password: {
37                 required: true,
38                 minlength: 5
39             },
40             confirm_password: {
41                 required: true,
42                 minlength: 5,
43                 equalTo: "#firstname"
44             },
45             email: {
46                 required: true,
47                 email: true
48             },
49             topic: {
50                 required: "#newsletter:checked",
51                 minlength: 2
52             },
53             agree: "required"
54         },
55         messages: {
56             firstname: "请输入你的姓",
57             lastname: "请输入你的名",
58             username: {
59                 required: "请输入用户名",
60                 minlength: "最小长度不能少于5个字"
61             },
62             password: {
63                 required: "Please provide a password",
64                 minlength: "Your password must be at least 5 characters long"
65             },
66             confirm_password: {
67                 required: "Please provide a password",
68                 minlength: "Your password must be at least 5 characters long",
69                 equalTo: "Please enter the same password as above"
70             },
71             email: "Please enter a valid email address",
72             agree: "Please accept our policy"
73         }
74     });
75 
76 });
77 </script>

表单验证方法

表单验证提示信息

调用jquery.validate({});方法进行验证

$("#empForm").validate({

  * //自定义验证规则

  * //自定义提示信息

})

自定义验证规则

自定义消息

jquery自定义校验规则

自定义校验规则可以通过自定义检验函数的方式新增加校验规则 步骤如下:

  1. 在定义校验规则之前定义一个新的方法  

  2. 在rules中指定某个域使用此校验规则  

  3. 在messages中指定这个域使用此校验规则没有通过的提示 信息

1. 在定义校验规则之前定义一个新的方法

2. 在rules中指定这个某个域使用此校验规则

3. 在messages中指定这个域使用此校验规则没有通过的提示信息

jquery表单验证案例

js部分

  1 <script type="text/javascript">
  2 /*********************************************************************************************************/    
  3     /*
  4      * 自定义验证方法
  5      * $.validator.addMethod(name,method,message);
  6      *         * $.validator.addMethod()是固定写法
  7      *         * name:添加的方法的名字
  8      *         * method:一个函数,function(value,element,param){}
  9      *             * value:对应页面中元素的value属性值
 10      *             * element:对应页面中的元素
 11      *             * param:参数
 12      *         * message:错误提示信息
 13      */
 14     $.validator.addMethod("cartLength",function(value,element,param){
 15         var len = value.length;
 16         
 17         if(len!=15&&len!=18){
 18             return false;
 19         }
 20         
 21         return true;
 22         
 23     });
 24     
 25     $.validator.addMethod("cartCheck",function(value,element,param){
 26         var len = value.length;
 27         
 28         var flag; 
 29         
 30         if(len==15){
 31             var pattern = /^[0-9]{15}$/;
 32             
 33             flag = pattern.test(value);
 34         }
 35         
 36         if(len==18){
 37             var pattern  = /^[0-9]{18}|[0-9]{17}x$/;
 38             
 39             flag = pattern.test(value);
 40         }
 41         
 42         if(!flag){
 43             return false;
 44         }
 45         
 46         return true;
 47         
 48         
 49     });
 50 
 51 /*********************************************************************************************************/    
 52     
 53     $().ready(function(){
 54         
 55         $("#empForm").validate({
 56             rules:{
 57                 realname:"required",
 58                 username:{
 59                     required:true,
 60                     rangelength:[5,8]
 61                 },
 62                 psw:{
 63                     required:true,
 64                     rangelength:[6,12]
 65                 },
 66                 psw2:{
 67                     required:true,
 68                     rangelength:[6,12],
 69                     equalTo:"#psw"
 70                 },
 71                 gender:"required",
 72                 age:{
 73                     required:true,
 74                     range:[26,50]
 75                 },
 76                 edu:"required",
 77                 birthday:{
 78                     required:true,
 79                     dateISO:"yyyy/MM/dd"
 80                 },
 81                 checkbox1:"required",
 82                 email:{
 83                     required:true,
 84                     email:"true"
 85                 },
 86                 cart:{
 87                     required:true,
 88                     cartLength:true,
 89                     cartCheck:true
 90                 }
 91             },
 92             messages:{
 93                 realname:"真是名称不能为空",
 94                 username:{
 95                     required:"登录名不能为空",
 96                     rangelength:"登录名的长度应该在5至8之间"
 97                 },
 98                 psw:{
 99                     required:"密码不能为空",
100                     rangelength:"密码的长度应该在6至12之间"
101                 },
102                 psw2:{
103                     required:"密码不能为空",
104                     rangelength:"密码的长度应该在6至12之间",
105                     equalTo:"两次密码输入不一致"
106                 },
107                 gender:"你没有第三种选择",        //如果在页面中设置其对应的label标签进行提示,在验证规则的信息提示中可以不设置相关内容
108                 age:{
109                     required:"年龄不能为空",
110                     range:"年龄必须在26至50之间"
111                 },
112                 edu:"至少要选择一个学历",
113                 birthday:{
114                     required:"出生日期不能为空",
115                     dateISO:"出生日期格式不正确"
116                 },
117                 email:{
118                     required:"email不能为空",
119                     email:"email地址的格式不正确"
120                 },
121                 cart:{
122                     required:"身份证号码不能为空",
123                     cartLength:"身份证号码长度不正确",
124                     cartCheck:"身份证号码的格式不正确"
125                 }
126             }
127         });
128         
129     });
130 
131 
132 </script>

HTML部分

  1 <p>员工信息录入</p>
  2 <form name="empForm" id="empForm" method="post" action="test.html">
  3         <table border=1>
  4             <tr>
  5                 <td>真实姓名(不能为空 ,没有其他要求)</td>
  6                 <td><input type="text" id="realname" name="realname" />
  7                 </td>
  8             </tr>
  9             <tr>
 10                 <td>登录名(登录名不能为空,长度应该在5-8之间,可以包含中文字符(一个汉字算一个字符)):</td>
 11                 <td><input type="text" id="username" name="username" /></td>
 12             </tr>
 13              <tr> 
 14               <td>密码(不能为空,长度6-12字符或数字,不能包含中文字符):</td>
 15               <td><input type="password" id="psw"  name="psw" style="width:120px" /></td>
 16             </tr>
 17             <tr> 
 18               <td>重复密码(不能为空,长度6-12字符或数字,不能包含中文字符):</td>
 19               <td><input type="password" id="psw2" name="psw2" style="width:120px" /></td>
 20             </tr>
 21             <!--
 22                                           默认错误提示信息,在放置在页面的表单中第一个控件后面
 23                 <label  style="display: none" for="gender" class="error">请选择性别</label>
 24                     * for:值对应的是页面表单中name属性的值
 25                     * class:设置样式,设置"error"样式
 26                     * style:"display: none",设置成隐藏
 27                 
 28                 * 在jquery表单验证框架运行时,原理如下:
 29                     * 首先,表单验证框架会在页面中查找对应的label标签
 30                         * 在页面中查找对应label标签,错误提示信息就提示页面中label标签内的文本信息
 31                         * 在页面中没有找到对应label标签,就通过验证框架底层创建一个label标签进行错误信息的提示
 32                 
 33                 
 34                 errorClass: "error",
 35                 validClass: "valid",
 36                 errorElement: "label",
 37                 
 38                 
 39                 label = $("<" + this.settings.errorElement + "/>")            //<label></label>
 40                     .attr({"for":  this.idOrName(element), generated: true})//<label for="gender"></label>
 41                     .addClass(this.settings.errorClass)                        //<label for="gender" class="error"></label>
 42                     .html(message || "");                                    //<label for="gender" class="error">错误提示信息</label>
 43                                       
 44             -->
 45             <tr>
 46                 <td>性别(必选其一)</td>
 47                 <td>
 48                     <input  type="radio" id="gender_male" value="m" name="gender"/> 49                     <input  type="radio" id="gender_female" value="f" name="gender"/> 50                     <label  style="display: none" for="gender" class="error">请选择性别</label>
 51                 </td>
 52             </tr>
 53             <tr>
 54                 <td>年龄(必填26-50):</td>
 55                 <td><input type="text" id="age" name="age" /></td>
 56             </tr>
 57             
 58             <tr> 
 59               <td>你的学历:</td>
 60               <td> <select name="edu" id="edu">
 61                       <option value="">--请选择你的学历--</option>
 62                       <option value="a">专科</option>
 63                       <option value="b">本科</option>
 64                       <option value="c">研究生</option>
 65                       <option value="e">硕士</option>
 66                       <option value="d">博士</option>
 67                   </select>
 68               </td>
 69             </tr>
 70             
 71             <tr> 
 72               <td>出生日期(1982/09/21):</td>
 73                <td><input type="text" id="birthday"  name="birthday" style="width:120px" value="" /></td>
 74             </tr>
 75             
 76            <tr> 
 77               <td>兴趣爱好:</td>
 78               <td colspan="2"> 
 79                   <input type="checkbox" name="checkbox1" id="qq1"/>乒乓球 
 80                   <input type="checkbox" name="checkbox1" id="qq2" value="1" />羽毛球 
 81                   <input type="checkbox" name="checkbox1" id="qq3" value="2" />上网 
 82                   <input type="checkbox" name="checkbox1" id="qq4" value="3" />旅游 
 83                   <input type="checkbox" name="checkbox1" id="qq5" value="4" />购物 
 84                   <label  style="display: none" for="checkbox1" class="error">您的兴趣爱好,至少选择一个</label>
 85               </td>
 86             </tr>
 87              <tr> 
 88                   <td align="left">电子邮箱:</td>
 89                   <td><input type="text" id="email" style="width:120px" name="email" /></td>
 90               </tr>
 91               <tr> 
 92                   <td align="left">身份证(15-18):</td>
 93                   <td><input type="text" id="cart"  style="width:200px" name="cart" /></td>
 94               </tr>
 95             <tr>
 96                 <td></td>
 97                 <td></td>
 98                 <td><input type="submit"  name="firstname"  id="firstname" value="保存"></td>
 99             </tr>
100         </table>
101 
102 </form>

 

posted @ 2016-10-08 20:25  李大白程序员  阅读(521)  评论(0编辑  收藏  举报