jQuery validation 1.7 ---验证插件需要:jQuery 1.3.2 或 1.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="120px" /></td> </tr> <tr> <td>重复密码(不能为空,长度6-12字符或数字,不能包含中文字符):</td> <td><input type="password" id="psw2" name="psw2" style="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="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="120px" name="email" /></td> </tr> <tr> <td align="left">身份证(15-18):</td> <td><input type="text" id="cart" style="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>