jQuery的validate验证插件使用方法源码

来源:互联网 发布:淘宝运营服务商 个人 编辑:程序博客网 时间:2024/05/18 00:12

validate插件默认的表单校验规则:

自定义校验规则:

[javascript] view plain copy
 print?
  1.     $(document).ready(function(){  
  2.           
  3.         $("#empForm").validate({  
  4.             //验证规则  
  5.             rules:{   
  6.                 realname:"required",  
  7.                 username:{  
  8.                     required:true,  
  9.                     rangelength:[5,8]  
  10.                 },  
  11.                 psw:{  
  12.                     required:true,  
  13.                     rangelength:[6,12]  
  14.                 },  
  15.                 psw2:{  
  16.                     required:true,  
  17.                     equalTo:"#psw"  
  18.                 },  
  19.                 gender:{  
  20.                     required:true  
  21.                 },  
  22.                 age:{  
  23.                     digits:true,  
  24.                     range:[10,15]  
  25.                 },  
  26.                 edu:{  
  27.                     required:true  
  28.                 },  
  29.                 birthday:{  
  30.                     required:true,  
  31.                     date:true  
  32.                 },  
  33.                 checkbox1:{  
  34.                     required:true  
  35.                 },  
  36.                 email:{  
  37.                     email:true  
  38.                 },  
  39.                 cart:{  
  40.                     cardCheck:"2"  
  41.                 }  
  42.             },  
  43.               
  44.             //提示信息  
  45.             messages:{  
  46.                 realname:"真实姓名不能为空",  
  47.                 username:{  
  48.                     required:"登录名不能为空",  
  49.                     rangelength:"登录名长度为5到8之间"  
  50.                 },  
  51.                 psw:{  
  52.                     required:"密码不能为空",  
  53.                     rangelength:"密码长度为6到12之间"  
  54.                 },  
  55.                 psw2:{  
  56.                     required:"确认密码不能为空",  
  57.                     equalTo:"两次密码输入不一致"  
  58.                 },  
  59.                 gender:{  
  60.                     required:"请选择性别"  
  61.                 },  
  62.                 age:{  
  63.                     digits:"输入的必须是数字",  
  64.                     range:"年龄必须在10-15之间"  
  65.                 },  
  66.                 edu:{  
  67.                     required:"学历必须选择一项"  
  68.                 },  
  69.                 birthday:{  
  70.                     required:"生日必须填写",  
  71.                     date:"日期格式为1900/01/01"  
  72.                 },  
  73.                 checkbox1:{  
  74.                     required:"兴趣爱好必须选"  
  75.                 },  
  76.                 email:{  
  77.                     email:"邮箱格式不正确"  
  78.                 }  
  79.             },  
  80.               
  81.             //验证成功后进行的操作  
  82.             success: function(label) {  
  83.                 label.html(" ").addClass("right");//引号里的是& nbsp;  
  84.             }  
  85.               
  86.               
  87.         });  
  88.     });  
  89.         //自定义校验规则  
  90.         /* 
  91.          * addMethod: 
  92.          *      第一个参数是:验证方法的名称,会在rules和messages中用到 
  93.          *      第二个参数是:回调方法 
  94.          *                  第一个参数value:组件中的值 
  95.          *                  第二个参数element:组件对象 
  96.          *                  第三个参数:表示错误提示信息,如果messages中也写了错误提示信息,那么会覆盖掉这个信息 
  97.          */  
  98.         $.validator.addMethod("cardCheck",function(value,element,params){  
  99. //          alert("value--->"+value);  是文本框输入的值  
  100. //          alert("element--->"+element);  组件对象  
  101. //          alert("params--->"+params);   默认值2  在rules中  cart:{cardCheck:"2"}  
  102.             if(value!=null){  
  103.                 if(value.length>=15&&value.length<=18)  
  104.                     return true;  
  105.             }else{  
  106.                 return false;  
  107.             }  
  108.         },"错误提示信息");  

验证成功后的样式:

[css] view plain copy
 print?
  1. /* 验证成功后的样式 */  
  2.     label.right{margin-left:4pxpadding-left:20pxbackground:url(checked.gif) no-repeat 2px 0;vertical-alignmiddle;}  



[html] view plain copy
 print?
  1. <html>  
  2.     <head>  
  3.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  4.         <title>jQuery validation plug-in - main demo</title>  
  5.         <link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />  
  6.         <script type="text/javascript" src="js/jquery-1.4.2.js"></script>  
  7.         <script type="text/javascript" src="js/jquery.validate.js"></script>  
  8.           
  9. <script type="text/javascript">  
  10.     //这里添加  
  11. </script>  
  12.   
  13. </head>  
  14. <body>  
  15.     <p>员工信息录入</p>  
  16. <form name="empForm" id="empForm" method="post" action="test.html">  
  17.         <table border=1>  
  18.             <tr>  
  19.                 <td>真实姓名(不能为空 ,没有其他要求)</td>  
  20.                 <td><input type="text" id="realname" name="realname" />  
  21.                 </td>  
  22.             </tr>  
  23.             <tr>  
  24.                 <td>登录名(登录名不能为空,长度应该在5-8之间,可以包含中文字符(一个汉字算一个字符)):</td>  
  25.                 <td><input type="text" id="username" name="username" /></td>  
  26.             </tr>  
  27.              <tr>   
  28.               <td>密码(不能为空,长度6-12字符或数字,不能包含中文字符):</td>  
  29.               <td><input type="password" id="psw"  name="psw" style="width:120px" /></td>  
  30.             </tr  
  31.             <tr>   
  32.               <td>重复密码密码(不能为空,长度6-12字符或数字,不能包含中文字符):</td>  
  33.               <td><input type="password" id="psw2" name="psw2" style="width:120px" /></td>  
  34.             </tr>  
  35.           
  36.           
  37.             <!--  
  38.                 label style="display: none" for="gender" class="error"您的性别必须选择一个label  
  39.                   * label:是jquery中显示错误信息的标签  
  40.                   * class="error"属性表示存放错误信息的  
  41.                   * for属性表示该标签的唯一标识,jquery验证框架运行时,先以for="gender"为条件查找lable标签  
  42.                        * 如果找到,直接使用  
  43.                        * 如果没有找到,创建一个新的标签  
  44.                             label style="display: none" for="gender" class="error"  
  45.                               
  46.                 底层代码  
  47.                       errorClass: "error",  
  48.                       errorElement: "label",  
  49.                         
  50.                         
  51.                 label = $("<" + this.settings.errorElement + "/>")   ----$("<label/>")  
  52.                     .attr({"for":  this.idOrName(element), generated: true})  
  53.                     .addClass(this.settings.errorClass)  
  54.                     .text(message || "");  
  55.                       
  56.                 label=<label for="name属性的值" class="error"  >xxxxx</label>             
  57.             -->  
  58.               
  59.               
  60.             <tr>  
  61.                 <td>性别(必选其一)</td>  
  62.                 <td>  
  63.                     <input  type="radio" id="gender_male" value="m" name="gender"/>男  
  64.                     <input  type="radio" id="gender_female" value="f" name="gender"/>女  
  65.                     <!-- 写这个标签是为了防止默认将提示信息紧挨着'男'显示 -->  
  66.                     <label style="display: none" for="gender"  class="error">您的性别必须选择一个</label>  
  67.                 </td>  
  68.                   
  69.             </tr>  
  70.             <tr>  
  71.                 <td>年龄(必填26-50):</td>  
  72.                 <td><input type="text" id="age" name="age" /></td>  
  73.             </tr>  
  74.               
  75.             <tr>   
  76.               <td>你的学历:</td>  
  77.               <td> <select name="edu" id="edu">  
  78.                       <option value="">--请选择你的学历--</option>  
  79.                       <option value="a">专科</option>  
  80.                       <option value="b">本科</option>  
  81.                       <option value="c">研究生</option>  
  82.                       <option value="e">硕士</option>  
  83.                       <option value="d">博士</option>  
  84.                   </select>  
  85.               </td>  
  86.             </tr>  
  87.               
  88.             <tr>   
  89.               <td>出生日期(1982/09/21):</td>  
  90.                <td><input type="text" id="birthday"  name="birthday" style="width:120px" value="" /></td>  
  91.             </tr>  
  92.               
  93.            <tr>   
  94.               <td>兴趣爱好:</td>  
  95.               <td colspan="2">   
  96.                   <input type="checkbox" name="checkbox1" id="qq1"/>乒乓球   
  97.                   <input type="checkbox" name="checkbox1" id="qq2" value="1" />羽毛球   
  98.                   <input type="checkbox" name="checkbox1" id="qq3" value="2" />上网   
  99.                   <input type="checkbox" name="checkbox1" id="qq4" value="3" />旅游   
  100.                   <input type="checkbox" name="checkbox1" id="qq5" value="4" />购物   
  101.                   <!-- 写这个标签是为了防止默认将提示信息紧挨着'乒乓球'显示 -->  
  102.                   <label  style="display: none" for="checkbox1" class="error">您的兴趣爱好,至少选择一个</label>  
  103.               </td>  
  104.             </tr>  
  105.              <tr>   
  106.                   <td align="left">电子邮箱:</td>  
  107.                   <td><input type="text" id="email" style="width:120px" name="email" /></td>  
  108.              </tr>  
  109.               <tr>   
  110.                   <td align="left">身份证(15-18):</td>  
  111.                   <td><input type="text" id="cart"  style="width:120px" name="cart" /></td>  
  112.               </tr>  
  113.             <tr>  
  114.                 <td></td>  
  115.                 <td></td>  
  116.                 <td><input type="submit"  name="firstname"  id="firstname" value="保存"></td>  
  117.             </tr>  
  118.         </table>  
  119.   
  120. </form>  
  121. </body>  
  122. </html>  





1.导入validate.js文件

注意:

*validate.js必须在jQuery.js文件之后导入,因为验证框架里需要用到jQuery.js中定义的方法

*如果先导入jQuery.js再导入validate.js   再次导入jQuery.js也不行。因为验证框架里会将某些方法进行扩展,而后又一次导入jQuery.js会将扩展的方法覆盖。


2.指定要验证的组件

注意:

*将验证的代码写在$(document).ready(function(){.....})或$(function(){.....})的function中,因为必须等到所有的DOM结构绘制完毕后才能执行,否则会报错,找不到元素。


3.在要被验证的组件上加class属性

注意:

*在组件上加class属性有两种方式:

1.class="required email"  多种规则用空格分隔

2.class="{required:true,email:true}"   json格式

当然也可以混用class="{required:true} email"


进行单独的提示消息覆盖:

[javascript] view plain copy
 print?
  1. 姓名<input type="text" name="userName" class="{required:true,minlength:3,messages:{required:'姓名必填',minlength:'不能少于3个字'}}">  

[javascript] view plain copy
 print?
  1. <script type="text/javascript">  
  2.     //自定义验证提示消息  
  3.     jQuery.extend(jQuery.validator.messages, {  
  4.         required: "请填写本字段",  
  5.         remote: "验证失败",  
  6.         email: "请输入正确的电子邮件",  
  7.         url: "请输入正确的网址",  
  8.         date: "请输入正确的日期",  
  9.         dateISO: "请输入正确的日期 (ISO).",  
  10.         number: "请输入正确的数字",  
  11.         digits: "请输入正确的整数",  
  12.         creditcard: "请输入正确的信用卡号",  
  13.         equalTo: "请再次输入相同的值",  
  14.         accept: "请输入指定的后缀名的字符串",  
  15.         maxlength: jQuery.validator.format("允许的最大长度为 {0} 个字符"),  
  16.         minlength: jQuery.validator.format("允许的最小长度为 {0} 个字符"),  
  17.         rangelength: jQuery.validator.format("允许的长度为{0}和{1}之间"),  
  18.         range: jQuery.validator.format("请输入介于 {0} 和 {1} 之间的值"),  
  19.         max: jQuery.validator.format("请输入一个最大为 {0} 的值"),  
  20.         min: jQuery.validator.format("请输入一个最小为 {0} 的值")  
  21.     });  
  22.     $(document).ready(function(){  
  23.         $("form").validate();  
  24.     });  
  25. </script>  

[javascript] view plain copy
 print?
  1. <style type="text/css">  
  2.     /* class=error的label组件  */  
  3.     label.error{  
  4.         margin-left: 10px;  
  5.         color: red;  
  6.     }  

  7. </style>  
源码下载http://download.csdn.net/detail/u013380777/9584231
0 0
原创粉丝点击