网上很多JS自定义规则只是说明了怎么定义,以及另外一种使用方式,这种方式无法满足所有场景,比如name属性是变量组合生成的,则无法通过那些资料的方法来使用验证,此处给予参考。
$("#fm").validate({
rules:{
loginpwd:{
required:true,
minlength:6,
maxlength:12,
regex:"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$"
},
loginpwd2:{
required:true,
equalTo: "#loginpwd",
regex:"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$"
}
},
messages:{
loginpwd:{
required: "请输入密码",
minlength: "密码长度不能小于 6 个字母",
regex:"密码必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间"
},
loginpwd2:{
required: "请输入密码",
minlength: "密码长度不能小于 6 个字母",
equalTo: "两次密码输入不一致",
regex:"密码必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间"
}
}
});
通过表单id获取表单,再通过rules设置通过name属性对控件添加验证。这种方式如果name是变量拼接生成,则无法对控件添加验证,因为不知道控件name是什么。
此时可以通过以下方式
添加自定义验证
// 手机号码验证
jQuery.validator.addMethod("mobile", function(value, element) {
var length = value.length;
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/
return this.optional(element) || (length == 11 && mobile.test(value));
}, "手机号码格式错误");
将自定义验证的名字mobile添加到控件
<input type="text" name="test" mobile>
这样既可为input添加验证。验证似乎只能添加在form表单