2012-11-26 83 views
1

我创建这个自定义的方法来管理正则表达式的自定义消息:jQuery验证插件:自定义验证方法

$.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"} 
    } 
    }); 
}); 

的问题是,虽然我可以改写为标准的检验方法的默认信息(如需要)里面调用验证(),我不能为自定义方法做。因此,我的页面将显示“文本无效”,而不是“密码只能包含字母或数字”。我该如何提供默认消息并允许覆盖它?

+0

不确定你在问什么。为什么不能将自定义方法中的消息_“文本无效”_留给您? – Sparky

回答

1

如果您想要始终在您的.validate()选项中设置自定义消息,只需将您的自定义方法留言。

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

我该怎么做才能提供一个默认的消息,并允许覆盖 呢?

我不相信这是可能的。毕竟,我们有理由认为,因为人们已经在使用他们自己的定制方法,为什么他们也想要超越它。

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