Как настроить сообщение об ошибке maxlength с помощью jQuery validate для отображения количества введенных символов
-
05-07-2019 - |
Вопрос
Я хочу, чтобы проверка 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
, поскольку он просто не может этого сделать.
Можете ли вы предоставить дополнительный контекст и / или подробности?