我创建了这个用于管理正则表达式的自定义方法:
$.validator.addMethod(
"regex",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Text not valid"
);
然后我使用了我的方法:
$(function() {
$("#registerform").validate({
rules: { password: {required: true, regex: "^[a-zA-Z09]+$"} },
messages: {
password: {regex: "A password can contain only letters or digits"}
}
});
});
问题在于,虽然我可以在对validate()的调用中覆盖标准验证方法的默认消息(如需要),但我不能为自定义方法执行此操作。因此,我的页面将显示“文本无效”而不是“密码只能包含字母或数字”。如何提供默认消息并允许覆盖它?
答案 0 :(得分:1)
如果您希望始终在.validate()
选项中设置自定义消息,请将消息从自定义方式中删除。
$.validator.addMethod(
"regex",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
}
);
如何提供默认消息并允许覆盖 它?
我不相信这是可能的。毕竟,可以合理地假设,因为一个人已经在使用他们自己的自定义方法,为什么他们也想要超越它。
您唯一的选择是在自定义方法中使用消息,或在.validate()
选项中设置消息,但不能同时设置消息。