maxlength
jQuery validate のバリデーションで以下のようなエラーメッセージを表示させたい:
「{0} 文字以内で入力してください。現在、{1} 文字を入力しています。」
{1}
実際の金額のプレースホルダーはどこにありますか。これを行う最善の方法は何ですか?
maxlength
jQuery validate のバリデーションで以下のようなエラーメッセージを表示させたい:
「{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;
}
});
これがあなたのための実用的なデモです。
検証をどのようにトリガーするかはわかりませんが、のmaxlength
属性input
により、ユーザーはその値が示すよりも多くの文字を入力できなくなります。maxlength
したがって、単に入力できないため、入力した文字数よりも多くの文字を入力したことをユーザーに通知する必要はありません。
追加のコンテキストや詳細を提供できますか?