簡體   English   中英

如何在ASP NET MVC中自定義不顯眼的驗證JQuery消息?

[英]How can I customize the unobtrusive validation JQuery messages in ASP NET MVC?

我有一個表單,當它進行不引人注意的驗證時,我希望它顯示:

此消息: “請輸入值。

而不是這條消息: “此字段是必需的。”

我嘗試在我的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)驗證規則由瀏覽器緩存,因此您需要清除它們(有關詳細信息,請參閱此答案 )。 2)所有的錯誤消息是在HTML標記,一旦呈現頁面,所以這就是你需要更改驗證消息。

為什么不在驗證attrs上使用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啟動代碼中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM