2009-08-20 10 views
0

テキストボックスには、MIN個の文字とMAX個の文字を指定する必要があります。ユーザーがフォームを送信する前に、入力が範囲内にあることを確認するために(jQueryを使用して、状況メッセージをユーザーに表示している最中に)最良の方法は何ですか?jQueryを使用したクライアント側のテキストボックスの文字数制限の検証?

更新:以下のコードはある程度機能しますが、テキストを削除する際に問題が発生しています。テキストボックス内のイベントをキャプチャするために 'keypress'を使用しているので、例えば 'backspace'を押すと、 'length'変数が誤ってインクリメントされます。問題のようなのは、テキストの長さがの前にの前に検索されている、つまりキーを押すと常に前にあった長さが+1になります。

更新:(!常にあまりにもサーバー上で検証)私はこのアプリで唯一のクライアント側の検証である場合には代わりにキー入力

答えて

1

のからkeyup機能を使用して、前の問題を解決したと思う、それ」このような何かを見てdは:あなたはあなたのアプリケーションでの検証の多くを必要とする場合

$("#your_textbox").keypress(function() { 
    var length = this.value.length; 
    if(length >= MIN && length <= MAX) { 
    $("#your_submit").removeAttr("disabled"); 
    $("#your_validation_div").hide(); 
    } else { 
    $("#your_submit").attr("disabled", "disabled"); 
    $("#your_validation_div").show(); 
    } 
}); 

あなたはvalidation pluginを検討する必要があります。

maxlength attributeの設定:

<input type='text' maxlength="30" /> 
+0

変化()関数は、私は、テキストボックスの外をクリックしたときにのみ起動するように思えます。テキストボックスに入力されたすべての新しい文字の後に、これをどのようにして起動させることができますか?ありがとう – oym

+0

代わりにkeypressを使用する - 私はコードを更新します。 –

+0

更新していただきありがとうございます...最後のこと - 長さがMAXに等しい場合、ユーザーがもう文字を入力できないようにテキストボックスを無効にするにはどうすればよいですか?ご協力いただきありがとうございます! – oym

関連する問題