簡體   English   中英

jQuery驗證-錯誤消息值

[英]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錯誤消息”作為錯誤消息,而不是插件的“請插入有效的十六進制顏色(#______)”

jQuery驗證

我如何獲取插件的錯誤消息?

不太確定您要在此處執行的操作,但是您在此處將驗證消息顯式設置為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.

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