在用jQuery Validate时,有时它提供的标准的验证规则也不一定能完全满足我们的业务需求。但是它提供了可自定义验证规则的方法addMethod。
如我们的客户DHL的员工号是是以14开头的8位数字,那么我们在使用jQuery Validate验证时,就可以这样自定义验证规则:
[js]
// Custom validation rule for DHL employee email
jQuery.validator.addMethod(“dhlEmpId”, function(value, element) {
return this.optional(element) || /^(14)[0-9]{6}$/.test(value);
}, “请输入8位员工号!”);
[/js]
其中:this.optional(element)的意思是出发这个规则的element的值为空时不触发验证,换句话说就是这个element的值可以不填,如果填了就不能填错格式。
如果想要这个element的值为空也要触发验证,直接把this.optional(element)去掉即可:return /^(14)[0-9]{6}$/.test(value);
当然你也可以在这个方法体内自己定义较复杂的规则,包含自己的业务逻辑,如下是一个天数的验证:
[js]
$.validator.addMethod(“validAvailDays”, function( value, element ) {
var courseAvailOption = $(“#quiz-basic-attr-form input[name=sb_course_avail]:checked”).val();
if(courseAvailOption == 2) {
var cknum = /^[1-9]\d*$/;
if(cknum.test($(“#sb_avail_days”).val())){
return true;
}
else{
return false;
}
}
else {
return true;
}
}, “天数限制必须是大于0的数字!”);
[/js]