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>