2011-10-24 17 views
0

jqueryを使用するテキストフィールドに入力できる文字数を制限するにはどうすればよいですか?テキストエリアを指すのではなく、通常のテキスト入力フィールドです。私はIOS5を使用してiPadを介してフォームを表示していますが、何らかの理由でmaxlength属性が無視されます。 maxlength = 10を使用した場合、このフィールドには永遠に入力できますが、10文字で停止しません。だから、フィールドを制限するためにjqueryが必要になるようです。助言がありますか?Jquery - テキスト入力でテキストを制限する、テキストエリアではない

更新

maxedisonからの例とマルク・Bからの提案を使用して、これは私が思い付いたコードが働いている:

$('#textfld','#textform').keyup(function() { 

    if($(this).val().length > 20) { 

     var text = $(this).val().substring(0,20); 
     $(this).val(text); 

    } 

}); 

答えて

4

は、あなたがのためのKeyDownイベントにバインドする必要がありますそのフィールドにすでに10がある場合、文字が入力されないようにします。http://jsfiddle.net/j6tJ3/

+0

これはsomeo文字列が最大長であれば、文字を削除できません。キーアップをチェックし、フィールドの値が上限を超えている場合は9文字の部分文字列で置き換えてください。 –

+0

良い点。 IF文を変更して、バックスペースと削除キーを許可しました。 keyupの使用は素晴らしいオプションではありません。キーが入力されてから削除されるからです。私の解決策が今扱わない1つの状況は、誰かが長い文字列でコピー&ペーストしようとする場合です。これは、 'e'プロパティのmetaKey値がtrueの場合に文字の入力を禁止し、右クリックを無効にすることで解決できます。しかし、私はそれがすべて遠すぎると思うので、フォームを送信する前に単に値をチェックし、問題がある場合にはユーザーに警告する方がよいでしょう。 – maxedison

関連する問題