[英]jQuery Validation - error messages value
我有一個jQuery驗證規則
$.validator.addMethod("hexcolor", function (value, element) {
return this.optional(element) || /^(#){1}([a-fA-F0-9]){6}$/.test(value);
}, "Please insert a valid hex color (#______)");
$.validator.unobtrusive.adapters.add("hexcolor", function (options) {
options.rules['hexcolor'] = options.params;
options.messages['hexcolor'] = options.message;
});
在HTML上,我像這樣綁定驗證
@Html.TextBoxFor(p => p.Color, new { data_val = "true", data_val_hexcolor = "Html Error message" })
@Html.ValidationMessageFor(p => p.Color)
當輸入無效時,我總是收到“ HTML錯誤消息”作為錯誤消息,而不是插件的“請插入有效的十六進制顏色(#______)”
我如何獲取插件的錯誤消息?
不太確定您要在此處執行的操作,但是您在此處將驗證消息顯式設置為data_val_hexcolor的值:
options.messages['hexcolor'] = options.message;
發送到適配器的選項的message屬性包含data_val_ [rulename]屬性的值。
這通常是您在ASP.NET MVC中所需要的,因為它允許您像在這里那樣而不是在Javascript中從服務器設置驗證消息。
@Html.TextBoxFor( ... data_val_hexcolor = "Html Error message" })
您可以通過完全刪除對options.messages['hexcolor']
的分配來忽略從服務器發送的消息,或者可以通過以下方式替換該行:
// Only add view defined message if not empty:
if (options.message)
{
options.messages['hex_color'] = options.message;
}
...,然后在視圖中將data_val_hexcolor設置為空字符串(顯然,您無法刪除該屬性,因為觸發驗證規則的是屬性的存在):
@Html.TextBoxFor( ... data_val_hexcolor = "" })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.