2011-07-21 103 views
29

我是JQuery的新手,並使用JQuery validation pluginjQuery Validation插件 - 自定義消息

我想問一下,如何覆蓋默認消息以顯示與表單元素相關聯的標籤中的文本。

我會得到的消息是這樣的:需要

現場密碼。而不是默認此字段必填

字段PostCode必須包含至少3個字符。而不是默認請輸入至少3個字符。

我需要重寫此插件的默認行爲,因爲我不想爲每種類型的驗證指定每個項目的自定義消息。

可能嗎?

回答

45
$("#signupform") 
    .validate({ 
     rules: { 
      password: "required", 
      postcode: { 
       required: true, 
       minlength: 3 
      } 
     }, 
     messages: { 
      password: "Field Password is required", 
      postcode: { 
       required: "Field PostCode is required", 
       minlength: "Field PostCode must contain at least 3 characters" 
      } 
    }); 
+0

感謝您的回答,但正如我所說: 我需要覆蓋此插件的默認行爲,因爲我不想爲每種類型的驗證指定每個項目的自定義消息。 你的答案正是我不想要的。 – Detonator

+0

@Martin:對不起,錯過了那一點。那麼,我可以看到你覆蓋默認消息的唯一方法就是編輯插件,我不建議這樣做。看看['invalidHandler'](http://docs.jquery.com/Plugins/Validation/validate#toptions)是否適合你,否則這裏的選項似乎有限。 – Shef

+3

也可以通過這種方式爲特殊輸入設置特殊消息:'data-msg-required =「請輸入您的電子郵件地址」'或'data-msg-email =「請在html標記中輸入一個有效的電子郵件地址。 –

16

這是我發現,當我一前兩天尋找同樣的事情。不幸的是,我不記得我在哪裏找到它,所以我不能給寫出答案的人信用。

jQuery.extend(jQuery.validator.messages, { 
    required:"This field is required.", 
    equalTo:"Password fields do not match.", 
    email:"Please enter a valid email.", 
}); 
+0

http:// stackoverflow。com/a/2457053/3416443 - 這是正確的鏈接 – Muarl

4

有一個更簡潔的方法來實現這一點。

使用「數據-MSG」或「數據-MSG-(RuleName中)」覆蓋默認的錯誤消息的預定義規則或自定義規則。 (jQuery驗證v1.11.0後,目前v1.16.0)

<input id="pwd" name="pwd" type="password" value="" 
     required 
     data-msg-required="Field Password is required." /> 

<input id="postcode" name="postcode" type="text" value="" 
     required 
     data-msg-required="Field PostCode is required." 
     minlength="3" 
     data-msg-minlength="Field PostCode must contain at least 3 characters." /> 
+1

到目前爲止最好的答案如果你只需要定製一個或兩個錯誤信息! – AlexisWbr

0

插件後補充一點:

jQuery.extend(jQuery.validator.messages, { 
    required: "Your new default message", 
    email: "That's not a valid email" 
}); 

你可以把它放在一個單獨的文件,如果你想,但要確保它包含在插件本身之後