Проверка jQuery - значение сообщений об ошибках - PullRequest
0 голосов
/ 30 января 2012

У меня есть правило проверки 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 validation

Как я могу получить сообщение об ошибке плагина?

1 Ответ

1 голос
/ 30 января 2012

Не совсем уверен, что вы пытаетесь сделать здесь, но вы явно задаете для сообщения проверки значение data_val_hexcolor здесь:

options.messages['hexcolor'] = options.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 = "" })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...