我坚持使用jQueries验证插件
我的输入总是给我一个错误。你可以在这里找到代码:http://jsfiddle.net/OrangeTux/6zUMd/1/
我想创建一些自定义规则,例如邮政编码,电话号码和其他一些特定号码。因此,我为正则表达式规则创建了一个新方法。此规则正常运行。
$.validator.addMethod("regexp", function(value, element, param) {
return this.optional(element) || !param.test(value);
});
之后我创建了一个新方法:
jQuery.validator.addMethod('postalCode', function(value, element) {});
然后我使用创建一个新类并添加规则
//add validation rules for each custom method
jQuery.validator.addClassRules({
postalCode: {
'postalCode' : true,
//regexp: /[^[0-9]{10}$]/, //<---- This regex doesn't work
//email: true // <----- This rule doens't work either
}
})
我该如何解决这个问题?
答案 0 :(得分:1)
你有一些事情有点倒退。首先,regex
规则并不完全正确。您希望在规则通过时从方法返回true
,因此您应该返回:
return this.optional(element) || param.test(value);
除此之外,添加像这样的自定义规则的首选方法是使用addMethod
,然后使用addClassRules
添加包含该方法的类规则:
jQuery.validator.addMethod("postalCode", function (value, element, params) {
return this.optional(element) || /^[0-9]{10}$/.test(value);
}, "Please enter a valid Postal Code");
//add validation rules for each custom method
jQuery.validator.addClassRules({
postalCode: {
postalCode: true
}
});
$("#form").validate({
debug: true,
//set place were error is shown
errorPlacement: function(error, element) {
error.appendTo(element.parent("td").next("td"));
},
});