有一個簡單的方法來改變在jQuery validation plugin默認錯誤值?jQuery驗證:改變默認的錯誤消息
我只是想重寫的錯誤信息更加個人到我的應用 - 我有很多的領域,所以我不想單獨設置消息(域)x ...我知道我能做到那!
有一個簡單的方法來改變在jQuery validation plugin默認錯誤值?jQuery驗證:改變默認的錯誤消息
我只是想重寫的錯誤信息更加個人到我的應用 - 我有很多的領域,所以我不想單獨設置消息(域)x ...我知道我能做到那!
添加該代碼在一個單獨的文件/腳本包括驗證插件後覆蓋的消息,編輯在將:)
jQuery.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
minlength: jQuery.validator.format("Please enter at least {0} characters."),
rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
range: jQuery.validator.format("Please enter a value between {0} and {1}."),
max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});
而不是改變插件的源代碼,你可以包含一個額外的js文件中像在下載本地化文件夾中的格式,幷包括一個裝載validation.js
jQuery.extend(jQuery.validator.messages, {
required: ...,
maxlength: jQuery.validator.format(...),
...
});
它不是。它在技術上與你的答案相同。我將我的評論發佈到您的答案的舊版本。然後寫我自己的答案。所有沒有連續重新加載頁面。因此,我只在看到您的評論時纔看到您編輯的答案。 – jitter 2010-03-16 18:35:58
後,您可以在調用validate指定自己的消息。起重和縮寫這段代碼從記住驗證插件文檔(http://jquery.bassistance.de/validate/demo/milk/),你可以很容易地指定自己的消息中所使用的牛奶註冊表格:
var validator = $("#signupform").validate({
rules: {
firstname: "required",
lastname: "required",
username: {
required: true,
minlength: 2,
remote: "users.php"
}
},
messages: {
firstname: "Enter your firstname",
lastname: "Enter your lastname",
username: {
required: "Enter a username",
minlength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("{0} is already in use")
}
}
}
用於驗證完整的API(...):http://jqueryvalidation.org/validate
感謝您的意見,但如果您仔細閱讀問題,我會問如何更改默認設置。我知道我可以指定唯一的消息。 – 2010-12-08 02:27:22
我站好了,對不起。 – Steven 2010-12-16 14:04:14
只是投入 - 這對我有幫助,即使不是針對問題的目標。 – 2011-12-29 19:53:05
另一種可能的解決方案是遍歷字段,向每個字段添加相同的錯誤消息。
$('.required').each(function(index) {
$(this).rules("add", {
messages: {
required: "Custom error message."
}
});
});
這個解決方案正是我正在尋找... ...在我的每個表單字段都有一個標籤,所以我找到了相應的標籤並在信息前添加了它,所以最後它說「名字是必需的」。非常好,Ganske。 – tjans 2013-01-09 15:10:25
+1雖然所有其他答案都是有效的,這是我正在尋找的語法。 – 2013-03-04 12:53:18
兩次!這兩個相同的答案幫助了我:D – 2013-05-17 06:00:34
這爲我工作:
$.validator.messages.required = 'required';
$ .validator.messages.maxlength = jQuery.validator.format(「請輸入不超過{0}個字符。」);不起作用。我建議使用Nick Cravers解決方案。 – 2014-05-21 11:44:57
@VidarVestnes該解決方案也適用於您的場景。您只需指定格式字符串,然後該插件執行其他操作:'$ .validator.messages.maxlength =「請輸入不多於{0}個字符。」;' – rusmus 2014-09-29 11:37:27
$ .validator.messages.maxlength:jQuery.validator。格式(...);將工作... – 2015-07-30 09:09:55
要刪除所有默認的錯誤消息使用
$.validator.messages.required = "";
最新版本有一些不錯的在線東西可以做。
如果它是一個簡單的輸入框,你可以添加屬性data-validation-error-msg
這樣的 -
data-validation-error-msg="Invalid Regex"
如果你需要的東西重一點,你可以完全自定義,使用可變事情被傳遞到所有的值驗證功能。參考此鏈接的全部細節 - https://github.com/victorjonsson/jQuery-Form-Validator#fully-customizable
這是一個不同於OP詢問的jQuery驗證插件的插件。這不是一個不錯的選擇,特別是如果將HTML中的驗證相關數據(規則,消息)置於呼籲之列(jQuery驗證插件採取相反的方式,所有這些使用Javascript)。爲了提供記錄的另一種選擇,Parsley.js是另一個使用很多且功能全面的驗證插件,它依賴於HTML屬性。 – 2015-03-20 21:00:36
,而不是這些自定義錯誤消息,我們可以指定文本字段的類型。
例:字段的設定類型中爲type =「電子郵件」
然後插件將識別字段和正確驗證。
他並沒有要求驗證它是否正確,他要求重寫消息.... 「我只是想重寫錯誤消息,使其更適合我的應用程序」 – Benoit 2017-02-21 22:12:00
這爲我工作:
// Change default JQuery validation Messages.
$("#addnewcadidateform").validate({
rules: {
firstname: "required",
lastname: "required",
email: "required email",
},
messages: {
firstname: "Enter your First Name",
lastname: "Enter your Last Name",
email: {
required: "Enter your Email",
email: "Please enter a valid email address.",
}
}
})
請注意,即使此答案適用於jqueryValidation和不是jqueryFileUpload,'$()。fileupload'函數中還有'messages'選項。 – 2014-10-09 07:26:15
@Josh:您可以從資源包
<script type="text/javascript">
$.validator.messages.number = '@Html.Raw(@Resources.General.ErrorMessageNotANumber)';
</script>
擴大與翻譯的消息解決方案。如果你把這個代碼的一部分到你的_layout。CSHTML(MVC)它,因爲我們已經在使用jQuery的適用於所有的意見
,我們可以讓網頁設計師添加自定義消息的標記,而不是代碼:
<input ... data-msg-required="my message" ...
或者更一般使用上的所有字段一個短數據msg屬性的解決方案:
<form id="form1">
<input type="text" id="firstName" name="firstName"
data-msg="Please enter your first name" />
<br />
<input type="text" id="lastName" name="lastName"
data-msg="Please enter your last name" />
<br />
<input type="submit" />
</form>
和代碼,然後包含這樣的事情:
function getMsg(selector) {
return $(selector).attr('data-msg');
}
$('#form1').validate({
// ...
messages: {
firstName: getMsg('#firstName'),
lastName: getMsg('#lastName')
}
// ...
});
這是一個很好的策略,特別是如果您需要一個不在您的js文件中的動態消息集... – 2015-07-01 20:02:26
@ user1207577,是的,我們可以設置自定義消息,但我們如何顯示最小長度和最大長度消息。我的意思是如果我們設置自定義,那麼最小和最大消息不會顯示。任何想法? – 2017-09-10 03:09:03
我從來沒有想過這會很容易,我正在開發一個項目來處理這種驗證。
下面的答案對於想要毫不費力地更改驗證消息的人很有幫助。
以下方法使用「佔位符名稱」代替「此字段」。
您可以輕鬆地修改的東西
// Jquery Validation
$('.js-validation').each(function(){
//Validation Error Messages
var validationObjectArray = [];
var validationMessages = {};
$(this).find('input,select').each(function(){ // add more type hear
var singleElementMessages = {};
var fieldName = $(this).attr('name');
if(!fieldName){ //field Name is not defined continue ;
return true;
}
// If attr data-error-field-name is given give it a priority , and then to placeholder and lastly a simple text
var fieldPlaceholderName = $(this).data('error-field-name') || $(this).attr('placeholder') || "This Field";
if($(this).prop('required')){
singleElementMessages['required'] = $(this).data('error-required-message') || $(this).data('error-message') || fieldPlaceholderName + " is required";
}
if($(this).attr('type') == 'email'){
singleElementMessages['email'] = $(this).data('error-email-message') || $(this).data('error-message') || "Enter valid email in "+fieldPlaceholderName;
}
validationMessages[fieldName] = singleElementMessages;
});
$(this).validate({
errorClass : "error-message",
errorElement : "div",
messages : validationMessages
});
});
這是一件好事。還有另一種方法可以做到嗎? – 2010-03-16 18:40:28
@Kevin - 不是真的......你必須至少設置變量,這就是所有這些。您可以在頁面中使用另一個'.js',在插件後面運行腳本來設置消息。 – 2010-03-16 18:47:30
工作很好。我剛剛添加了: $ .extend($。validator.messages,{ required:「Required」 }); – 2011-07-01 21:28:08