Как настроить сообщение об ошибке maxlength с помощью jQuery validate для отображения количества введенных символов - PullRequest
2 голосов
/ 30 июля 2009

Я хочу, чтобы maxlength проверка jQuery validate отображала сообщение об ошибке вроде следующего:

"Пожалуйста, введите не более {0} символов. В настоящее время вы ввели {1} символов."

Где {1} - заполнитель для фактической суммы. Какой лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 30 июля 2009

Я не думаю, что есть простой способ сделать это, но я нашел обходной путь для вас. Я думаю, вы могли бы написать свой собственный валидатор для этого поля, но это может быть проще.

Начните с изменения сообщения по умолчанию для maxlength ошибок:

$.extend($.validator.messages, {  
    maxlength: $.validator.format("Please enter no more than {0} characters. You've currently entered CHARS_NO characters.")
});

Продолжайте проверку как обычно, но добавьте эту функцию:

$('input').keyup(function () {
    var rules = $(this).rules();
    if (rules.maxlength !== undefined && !$(this).valid()) {
        var errorLabel = $('label[for=' + $(this).attr('id') + '][generated=true].error');
        errorLabel.text(errorLabel.text().replace('CHARS_NO', $(this).val().length));
        return false;
    }
});

Вот вам рабочая демоверсия .

0 голосов
/ 30 июля 2009

Я не уверен, как вы запускаете проверку, но атрибут maxlength на input не позволит пользователю вводить больше символов, чем указано в этом значении. Таким образом, нет необходимости сообщать пользователю, что они ввели больше символов, чем maxlength, поскольку они просто не могут этого сделать.

Можете ли вы предоставить дополнительный контекст и / или детали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...