jQuery Validate插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。菜鸟教程里面介绍了一种添加自定义的方法,我再介绍另外的一种。
先下载jQuery Validate 的插件
菜鸟教程提供的 1.14.0 版本下载地址:http://static.runoob.com/download/jquery-validation-1.14.0.zip
导入js库
第一种:菜鸟教程给的参考方案是:
addMethod(name,method,message) 添加一个新的验证方法。必须包括一个独一无二的名字,一个 JAVASCRIPT 的方法和一个默认的信息。
// 中文字两个字节
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
var length = value.length;
for(var i = 0; i < value.length; i++){
if(value.charCodeAt(i) > 127){
length++;
}
}
return this.optional(element) || ( length >= param[0] && length <= param[1] );
}, $.validator.format("请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)"));
// 邮政编码验证
jQuery.validator.addMethod("isZipCode", function(value, element) {
var tel = /^[0-9]{6}$/;
return this.optional(element) || (tel.test(value));
}, "请正确填写您的邮政编码");
第二种:
//比较时间
jQuery.validator.methods.compareDate = function(value, element, param) {
var startDate = jQuery(param).val();
var date1 = new Date(Date.parse(startDate.replace("-", "/")));
var date2 = new Date(Date.parse(value.replace("-", "/")));
return date1 <= date2;
};
第二个例子的作用是比较时间,value是当前元素的值,element是当前元素,param是传入的参数。
这种方式不需要些默认信息。
这两种使用的方法一样的,例如:
//添加框表单校验
$("#addForm").validate({
rules: {
startdate: {
required: true
},
enddate: {
required: true,
compareDate:"#startdate_add"
}
},
messages: {
startdate: {
required: "该项必填" },
enddate: {
required: "该项必填",
compareDate:"需要比开始时间大"
}
}
});