有一个简单的方法来改变在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