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

StackOverflow https://stackoverflow.com/questions/1206705

Вопрос

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

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

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

Это было полезно?

Решение

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

Начните с изменения сообщения по умолчанию для ошибок 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;
    }
});

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top