【发布时间】:2009-07-30 13:43:54
【问题描述】:
我希望 jQuery validate 的 maxlength 验证显示如下错误消息:
“请输入不超过 {0} 个字符。您当前已输入 {1} 个字符。”
其中{1} 是实际金额的占位符。
最好的方法是什么?
【问题讨论】:
标签: jquery validation custom-errors
我希望 jQuery validate 的 maxlength 验证显示如下错误消息:
“请输入不超过 {0} 个字符。您当前已输入 {1} 个字符。”
其中{1} 是实际金额的占位符。
最好的方法是什么?
【问题讨论】:
标签: jquery validation custom-errors
我认为没有一种简单的方法可以做到这一点,但我为您找到了解决方法。我想您可以为该字段编写自己的验证器,但这可能更简单。
首先更改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;
}
});
这是给你的working demo。
【讨论】:
我不确定您是如何触发验证的,但input 上的maxlength 属性将阻止用户输入比该值指示的字符更多的字符。因此,没有必要通知用户他们输入的字符多于maxlength,因为他们根本做不到。
您能否提供更多上下文和/或详细信息?
【讨论】: