如何使用jQuery validate自定义maxlength的错误消息以显示输入的字符数
-
05-07-2019 - |
题
我希望jQuery validate的 maxlength
验证显示如下错误消息:
"请输入不超过{0}个字符。您目前已输入{1}个字符。"
其中 {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;
}
});
以下是工作演示。
其他提示
我不确定您是如何触发验证的,但 input
上的 maxlength
属性将阻止用户输入的字符多于该值指示的值。因此,没有必要告知用户他们输入的字符多于 maxlength
,因为他们根本无法做到。
您能提供其他背景和/或详细信息吗?
不隶属于 StackOverflow