JQuery -- Validate, Jquery 表单校验

来源:互联网 发布:javascript有编译器吗 编辑:程序博客网 时间:2024/05/01 12:54
1. Jquery 表单验证需要插件

jQuery validation 1.7  ---验证插件需要:jQuery 1.3.21.4.2版本

http://jquery.bassistance.de/validate/jquery.validate.zip
首页: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

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

$("#empForm").validate({

         //自定义验证规则

      *     //自定义提示信息

})

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

步骤如下:
 
1. 在定义校验规则之前定义一个新的方法
 
2. rules中指定某个域使用此校验规则
 
3. messages中指定这个域使用此校验规则没有通过的提示信息

 

示例代码:

<html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />        <title>jQuery validation plug-in - main demo</title><link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />        <script type="text/javascript" src="js/jquery.js"></script>        <script type="text/javascript" src="js/jquery.validate.js"></script>        <script type="text/javascript">/*********************************************************************************************************//* * 自定义验证方法 * $.validator.addMethod(name,method,message); * * $.validator.addMethod()是固定写法 * * name:添加的方法的名字 * * method:一个函数,function(value,element,param){} * * value:对应页面中元素的value属性值 * * element:对应页面中的元素 * * param:参数 * * message:错误提示信息 */$.validator.addMethod("cartLength",function(value,element,param){var len = value.length;if(len!=15&&len!=18){return false;}return true;});$.validator.addMethod("cartCheck",function(value,element,param){var len = value.length;var flag; if(len==15){var pattern = /^[0-9]{15}$/;flag = pattern.test(value);}if(len==18){var pattern  = /^[0-9]{18}|[0-9]{17}x$/;flag = pattern.test(value);}if(!flag){return false;}return true;});/*********************************************************************************************************/// validate signup form on keyup and submit/* * validate()方法: * * 验证表单,实际上调用就是validate()方法 * * validate()方法传入一个json格式数据 *  *rules:表单验证里的验证规则 *  *key:对应的是页面中表单的name属性值 *  *value:对应的验证规则 * * required:验证是否为空 * * minlength:验证最小长度 * * equalTo:对比指定标签的内容是否一致,"#id" * * email:验证email地址是否正确 * rules:{ * key:value * }, *  * messages:表单验证里的错误提示信息 *  *key:对应的是页面中表单的name属性值 *  *value:错误提示信息 *  * messages:{ * key:value * } */ $().ready(function(){$("#empForm").validate({rules:{realname:"required",username:{required:true,rangelength:[5,8]},psw:{required:true,rangelength:[6,12]},psw2:{required:true,rangelength:[6,12],equalTo:"#psw"},gender:"required",age:{required:true,range:[26,50]},edu:"required",birthday:{required:true,dateISO:"yyyy/MM/dd"},checkbox1:"required",email:{required:true,email:"true"},cart:{required:true,cartLength:true,cartCheck:true}},messages:{realname:"真是名称不能为空",username:{required:"登录名不能为空",rangelength:"登录名的长度应该在5至8之间"},psw:{required:"密码不能为空",rangelength:"密码的长度应该在6至12之间"},psw2:{required:"密码不能为空",rangelength:"密码的长度应该在6至12之间",equalTo:"两次密码输入不一致"},gender:"你没有第三种选择",//如果在页面中设置其对应的label标签进行提示,在验证规则的信息提示中可以不设置相关内容age:{required:"年龄不能为空",range:"年龄必须在26至50之间"},edu:"至少要选择一个学历",birthday:{required:"出生日期不能为空",dateISO:"出生日期格式不正确"},email:{required:"email不能为空",email:"email地址的格式不正确"},cart:{required:"身份证号码不能为空",cartLength:"身份证号码长度不正确",cartCheck:"身份证号码的格式不正确"}}});});</script></head><body>    <p>员工信息录入</p><form name="empForm" id="empForm" method="post" action="test.html"><table border=1><tr><td>真实姓名(不能为空 ,没有其他要求)</td><td><input type="text" id="realname" name="realname" /></td></tr><tr><td>登录名(登录名不能为空,长度应该在5-8之间,可以包含中文字符(一个汉字算一个字符)):</td><td><input type="text" id="username" name="username" /></td></tr> <tr>       <td>密码(不能为空,长度6-12字符或数字,不能包含中文字符):</td>      <td><input type="password" id="psw"  name="psw" style="width:120px" /></td>    </tr>    <tr>       <td>重复密码(不能为空,长度6-12字符或数字,不能包含中文字符):</td>      <td><input type="password" id="psw2" name="psw2" style="width:120px" /></td>    </tr><!--                                          默认错误提示信息,在放置在页面的表单中第一个控件后面<label  style="display: none" for="gender" class="error">请选择性别</label>* for:值对应的是页面表单中name属性的值* class:设置样式,设置"error"样式* style:"display: none",设置成隐藏* 在jquery表单验证框架运行时,原理如下:* 首先,表单验证框架会在页面中查找对应的label标签* 在页面中查找对应label标签,错误提示信息就提示页面中label标签内的文本信息* 在页面中没有找到对应label标签,就通过验证框架底层创建一个label标签进行错误信息的提示errorClass: "error",validClass: "valid",errorElement: "label",label = $("<" + this.settings.errorElement + "/>")//<label></label>.attr({"for":  this.idOrName(element), generated: true})//<label for="gender"></label>.addClass(this.settings.errorClass)//<label for="gender" class="error"></label>.html(message || "");//<label for="gender" class="error">错误提示信息</label>      -->    <tr><td>性别(必选其一)</td><td>    <input  type="radio" id="gender_male" value="m" name="gender"/>男    <input  type="radio" id="gender_female" value="f" name="gender"/>女    <label  style="display: none" for="gender" class="error">请选择性别</label></td></tr><tr><td>年龄(必填26-50):</td><td><input type="text" id="age" name="age" /></td></tr>    <tr>       <td>你的学历:</td>      <td> <select name="edu" id="edu">          <option value="">--请选择你的学历--</option>          <option value="a">专科</option>          <option value="b">本科</option>          <option value="c">研究生</option>          <option value="e">硕士</option>          <option value="d">博士</option>          </select>  </td>    </tr><tr>               <td>出生日期(1982/09/21):</td>               <td><input type="text" id="birthday"  name="birthday" style="width:120px" value="" /></td>            </tr>   <tr>       <td>兴趣爱好:</td>      <td colspan="2">       <input type="checkbox" name="checkbox1" id="qq1"/>乒乓球           <input type="checkbox" name="checkbox1" id="qq2" value="1" />羽毛球           <input type="checkbox" name="checkbox1" id="qq3" value="2" />上网           <input type="checkbox" name="checkbox1" id="qq4" value="3" />旅游           <input type="checkbox" name="checkbox1" id="qq5" value="4" />购物   <label  style="display: none" for="checkbox1" class="error">您的兴趣爱好,至少选择一个</label>  </td>    </tr> <tr>       <td align="left">电子邮箱:</td>      <td><input type="text" id="email" style="width:120px" name="email" /></td>  </tr>  <tr>       <td align="left">身份证(15-18):</td>      <td><input type="text" id="cart"  style="width:200px" name="cart" /></td>  </tr><tr><td></td><td></td><td><input type="submit"  name="firstname"  id="firstname" value="保存"></td></tr></table></form><script language="JavaScript"></script></body></html>


 

0 0