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

検証をどのようにトリガーするかはわかりませんが、のmaxlength属性inputにより、ユーザーはその値が示すよりも多くの文字を入力できなくなります。maxlengthしたがって、単に入力できないため、入力した文字数よりも多くの文字を入力したことをユーザーに通知する必要はありません。

追加のコンテキストや詳細を提供できますか?

于 2009-07-30T14:32:57.087 に答える