我有一个表单,当它进行不引人注目的验证时,我希望它显示:
此消息:"请输入一个值。">
代替此消息:"this Field is required.">
我试着在jquery.validate.uno唐突.js文件的末尾添加这个
(function ($) {
$.extend($.validator.messages, {
required: "Please enter a value."
});
}(jQuery));
但它就是不起作用。
我还尝试直接修改jquery.validate.js文件中的"messages"变量,但它也不起作用。
你能告诉我怎么做吗?
如果您正在使用数据注释属性,并且不想为每一个属性自定义消息(通过您的一条评论显示,情况就是这样(,我可以看到两个选项:
1( 创建自己的数据注释属性并设置默认消息,然后将[Required]
的所有实例更改为新属性。
2( 你可以在jQuery:中尝试
// reset the form's validator
$("form").removeData("validator");
// change the text on each required attribute
$(":input[data-val-required]").attr("data-val-required", "Please enter a value");
// reapply the form's validator
$.validator.unobtrusive.parse(document);
我在Chrome的控制台中尝试了这个javascript,一切似乎都很好。你之所以需要这样做,是因为1(验证规则是由浏览器缓存的,所以你需要清除它们(更多信息,请参阅这个答案(。2(一旦页面被呈现,所有的错误消息都会出现在html标记中,所以这是需要更改验证消息的地方。
为什么不在验证属性上使用ErrorMeesage
[Required(ErrorMessage="Please enter a value.")]
编辑:从ThisPost来看,这是另一种方法:
- 为您的项目创建App_GlobalResources文件夹(右键单击项目->添加->添加ASP.NET文件夹->App_Global资源(
- 在该文件夹中添加resx文件。说
MyNewResource.resx
- 添加具有所需消息格式的资源密钥
PropertyValueInvalid
(例如"内容{0}对字段{1}无效"(。如果您也想更改PropertyValueRequired
,也可以添加它 - 将代码
DefaultModelBinder.ResourceClassKey = "MyNewResource"
添加到Global.asax启动代码中