jquery valida自定义验证规则
/**
$.validator.addMethod("chinese", function(value, element) {
alert(this.optional(element));
var chinese = /^[\u4e00-\u9fa5]+$/;
return (chinese.test(value)) || this.optional(element);
}, "只能输入中文111"); //如果返回的是false,那么输出后面的提示信息。
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个字节)"));//如果带有输出参数的提示信息,那么使用format函数
*/
//0.先导入jquery的验证JS和jquery的JS
//1.optional(element)返回的是布尔值,这个主要检测验证框是否为空的情况,如果为空则返回false。
//2.以 $.validator.addMethod("chinese", function(value, element)这个函数为例进行讲解:
// 这个是自定义一个规则的函数,其中函数名不能变。
// chinese:验证规则名,自定义
// value:要检验的数值
// element:要检测对象是否为空
//3.通过内部正则进行验证,返回一个boolean值,return (chinese.test(value)) || this.optional(element);如果为false
// 则会输出后面的提示信息。
//4.编写完规则之后,直接引入jquery的环境,$(function() { })
/**
$(function(){
$("#form1").validate({ 定义form的ID,到底是对那个form进行验证
rules: { //规则
username:{ //对input的ID进行验证,username是input的ID
required:true, //非空验证,这个规则也可以自定义,也可以使用系统的。凡是上面没有通过addMethod方法添加的都属于系统的。
chinese:true, //自定义的规则
byteRangeLength:[1,2] //自定义的规则
}
// username:"buga" //如果使用相同ID的input,那么以最后一个为准。
//username:"chinese"
//username:"byteRangeLength"
},
messages:{ 自定义提示信息,如果不定义提示信息,那么以addMethod函数里面的提示信息为准,系统的规则,可以在此定义提示信息
username:{ ,如果不定义则按照系统默认的提示信息为准。
required:"不能为空!"
// chinese:"一定要是中文的"
}
}
});
});
*/
注意:自定义验证时可以阻止表单提交的,也就是说表单验证不通过无法提交。