如何在ASP NET MVC中自定义不显眼的validationJQuery消息?
我有一个表单,当它做了不引人注意的validation时,我希望它显示:
此消息: “请输入值。 ”
而不是这条消息: “此字段是必需的。”
我尝试在我的jquery.validate.unobtrusive.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)validation规则由浏览器缓存,因此您需要清除它们(有关详细信息,请参阅此答案 )。 2)呈现页面后,所有错误消息都在html标记中,因此您需要更改validation消息。
为什么不在validationattrs上使用ErrorMeesage
[Required(ErrorMessage="Please enter a value.")]
编辑:从ThisPost ,这是另一种方法:
- 为项目创建App_GlobalResources文件夹(右键单击项目 – >添加 – >添加ASP.NET文件夹 – > App_GlobalResources)。
- 在该文件夹中添加resx文件。 说
MyNewResource.resx
。 - 使用所需的消息格式添加资源键
PropertyValueInvalid
(例如,“内容{0}对于字段{1}无效”)。 如果您想更改PropertyValueRequired
也可以添加它。 - 将代码
DefaultModelBinder.ResourceClassKey = "MyNewResource"
到您的Global.asax启动代码中。