JQuery验证插件:自定义验证方法的自定义消息

时间:2012-11-26 15:11:52

标签: jquery jquery-validate

我创建了这个用于管理正则表达式的自定义方法:

$.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()的调用中覆盖标准验证方法的默认消息(如需要),但我不能为自定义方法执行此操作。因此,我的页面将显示“文本无效”而不是“密码只能包含字母或数字”。如何提供默认消息并允许覆盖它?

1 个答案:

答案 0 :(得分:1)

如果您希望始终在.validate()选项中设置自定义消息,请将消息从自定义方式中删除。

$.validator.addMethod(
    "regex",
    function(value, element, regexp) {
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    }
);
  

如何提供默认消息并允许覆盖   它?

我不相信这是可能的。毕竟,可以合理地假设,因为一个人已经在使用他们自己的自定义方法,为什么他们也想要超越它。

您唯一的选择是在自定义方法中使用消息,或在.validate()选项中设置消息,但不能同时设置消息。