Jquery ненавязчивые пользовательские сообщения об ошибках - PullRequest
4 голосов
/ 25 января 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.TextBoxFor(p => p.Color, new { data_val = "true", data_val_hexcolor = "Error message" })

У меня две проблемы /вопросы:

  1. Когда значение недопустимо, вместо сообщения об ошибке отображается «Сообщение об ошибке» вместо «Пожалуйста, введите правильный шестнадцатеричный цвет (#_ _ _ _ _ _)»

  2. Я видел в некоторых других примерах сообщения об ошибках, созданные следующим образом.

    jQuery.validator.addMethod ("maxWords", функция (значение, элемент, параметры) {вернуть это.optional (element) || stripHtml (value) .match (/ \ b \ w + \ b / g) .length

Заполнитель строки "{0} {1}" и т. Д. Заменены значениями параметров?

1 Ответ

0 голосов
/ 12 февраля 2015

Ваш вопрос мне не очень понятен.Однако, если вы пытаетесь написать пользовательские сообщения об ошибках, которые принимают параметры.Вот как этого добиться:

 jQuery.validator.addMethod('validdate', function (value, element,
    params) {
             value = model.date();
             if (value === '') {
                 return false;
             }
             var range = JSON.parse(params);
             return value > range[0] && value < range[1];
         }, $.format('You can only specify date between {0} and  {1}'));
...