Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Validatr как настроить свои сообщения об ошибках (https://javascript.ru/forum/jquery/42791-validatr-kak-nastroit-svoi-soobshheniya-ob-oshibkakh.html)

ekkl-82 09.11.2013 23:55

Validatr как настроить свои сообщения об ошибках
 
В принципе это и есть вопрос. Как в этом валидаторе http://jaymorrow.github.io/validatr/применить свои сообщения об ошибках.
Бился и с этой версией, и с версией помоложе. НИЧЕГО. Выводятся дефолтные сообщения браузера.
В фаерфоксе на английском, в хроме на русском, в опере ничего почему-то (просто подсветка).
Вот накопал:
var target = e.target,
            $target = $(target),
            options = this.options,
            msg = target.getAttribute('data-message') || $.data(target, 'validationMessage'),
            error = $(options.template.replace('{{message}}', msg));

По идее код ошибки должен быть в target.getAttribute('data-message')
Но эта переменная пустая.
В версии 3 есть
$.fn[widgetName].defualtOptions = {
        customMessages: true,

Но параметр ни на что не влияет и нигде не используется.

LittlePony 10.11.2013 00:25

По вашей ссылке открытый исходный код :)
да, такой опции просто нет. Зато есть такой код:
$.validatr.messages = {
        checkbox: 'Please check this box if you want to proceed.',
        color: 'Please enter a color in the format #xxxxxx',
        email: {
            single: 'Please enter an email address.',
            multiple: 'Please enter a comma separated list of email addresses.'
        },
        pattern: 'Please match the requested format.',
        radio: 'Please select one of these options.',
        range: {
            base: 'Please enter a {{type}}',
            overflow: 'Please enter a {{type}} greater than or equal to {{min}}.', 
            overUnder: 'Please enter a {{type}} greater than or equal to {{min}}<br> and less than or equal to {{max}}.',
            invalid: 'Invalid {{type}}',
            underflow: 'Please enter a {{type}} less than or equal to {{max}}.'
        },
        required: 'Please fill out this field.',
        select: 'Please select an item in the list.',
        time: 'Please enter a time in the format hh:mm:ss',
        url: 'Please enter a url.'
    };

Не об этом ли вы спрашивали?
Кроме того, в директории l10n пример локализации. Весьма вероятно, в вашем случае он будет крайне полезен.

ekkl-82 10.11.2013 00:52

Смотрел пример. Так же не реагирует на изменение в приведенном коде.
Вернее одни одни ошибки перекрываются, другие нет.

LittlePony 10.11.2013 02:20

какие именно не перекрываются? попробуем воспроизвести

ekkl-82 10.11.2013 15:07

http://jsbin.com/UQAqOzi/2/watch?html,js,output
Опера вообще ничего не отображает. Фаерфокс для одних полей отображает то, что в списке ошибок, для других, сообщение по-умолчанию
--
Например, для поля Number Заполните это поле , то что указано в конфигурации
Для поля email Please fill out this field. Сообщение браузера по-умолчанию
Опера, как говорил не отображают ничего, даже на офф. сайте в тестах. Выводятся пустые красные рамки.
Хром начисто игнорирует все изменения в i10n/en.js и выводит свои сообщения об ошибках.
Наверное, библиотека еще совсем сырая.


Часовой пояс GMT +3, время: 16:16.