5

I have a form, and when it does the unobtrusive validtaion I want it to show:

This message: "Please enter a value."

Instead of this message: "This Field is required."

I tried adding this at the end of my jquery.validate.unobtrusive.js file

(function ($) {
   $.extend($.validator.messages, {
     required: "Please enter a value."
   }); 
}(jQuery));

But it's just not working.

I also trying modifying directly the "messages" variable in jquery.validate.js file but it is not working either.

Could you please tell me how can I get this done?

4

2 回答 2

13

如果您正在使用数据注释属性并且不想为每个属性自定义消息(您的一条评论显示就是这种情况),我可以看到两个选项:

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 标记中,所以就是你需要更改验证消息的地方。

于 2013-10-14T20:28:04.730 回答
7

为什么不在验证属性上使用 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 启动代码中。
于 2013-10-14T16:53:01.790 回答