2

我希望maxlengthjQuery validate 的验证显示如下错误消息:

“请输入不超过 {0} 个字符。您当前输入了 {1} 个字符。”

{1}实际金额的占位符在哪里。最好的方法是什么?

4

2 回答 2

2

我认为没有一种简单的方法可以做到这一点,但我为您找到了一种解决方法。我想您可以为该字段编写自己的验证器,但这可能更简单。

首先更改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;
    }
});

这是给你的工作演示

于 2009-07-30T14:36:39.453 回答
0

我不确定您是如何触发验证的,但是maxlengthan 上的属性input将阻止用户输入比该值指示的字符更多的字符。因此,没有必要通知用户他们输入了更多的字符,maxlength因为他们根本做不到。

你能提供额外的背景和/或细节吗?

于 2009-07-30T14:32:57.087 回答