2012-11-26 79 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()選項中設置消息,但不能同時使用這兩種選項。