如何在ASP.NET MVC中自定义不引人注目的验证JQuery消息



我有一个表单,当它进行不引人注目的验证时,我希望它显示:

此消息:"请输入一个值。">

代替此消息:"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启动代码中

最新更新