关于validata做一个记录。
导包://cdn.bootcss.com/jquery-validate/1.14.0/jquery.validate.min.js"
<span style="font-family: Arial, Helvetica, sans-serif;">表单:</span>
<span style="white-space:pre"> </span><form id="logForm" action="**" method="post">
用户名:<input type="text" name="userName" /><br>
密码:<input type="password" name="pwd" id="pwd" /><br>
重复密码:<input type="password" name="password_agin" /><br>
身份证:<input type="text" name="isIdCardNo" id="isIdCardNo"><br>
性别:<div><input type="radio" name="sex"><input type="radio" name="sex"></div>
<input type="submit" value="提交">
</form>
js代码:
<span style="white-space:pre"> </span>$(document).ready(function(){
//自定义身份证验证
jQuery.validator.addMethod("isIdCardNo", function (value, element) {
return this.optional(element) || isIdCardNo(value);
}, "请正确输入您的身份证号码");
$("#logForm").validate({
rules : {
userName : {
required : true,
maxlength:15,
minlength:6
},
pwd : {
required : true,
maxlength:20,
minlength:7,
},
password_agin : {
equalTo:"#pwd"
},
isIdCardNo:{
required:true,
isIdCardNo:true
},
sex: {
required: true
}
},
messages : {
userName : {
required : "名称必须填写",
maxlength:"最大长度为{0}",
minlength:"最小长度为{0}"
},
pwd : {
required : "密码必须填写",
maxlength:"最大长度为{0}",
minlength:"最小长度为{0}",
},
password_agin : {
equalTo:"两次密码不同"
},
isIdCardNo:{
required:"必须写",
isIdCardNo:"请输入正确的身份证号码"
},
sex : {
required:"必须选"
}
}, errorPlacement: function (error, element) { //指定错误信息位置
if (element.is(':radio') || element.is(':checkbox')) { //如果是radio或checkbox
var eid = element.attr('name'); //获取元素的name属性
error.appendTo(element.parent()); //将错误信息添加当前元素的父结点后面
} else {
error.insertAfter(element);
}
}
});
//身份证验证
function isIdCardNo(num) {
var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for (i = 0; i < intStrLen; i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
return true;
}
})
<span style="white-space:pre"> </span>个人认为validata非常方便,方便到你只需要知道如何使用就行了,而不必知道原理。