HTMLのTEXTAREAで文字数の入力制限はできるか?!
結論:サーバーサイドでチェックしる!!(笑)
英数字のみなら完全に入力時に制限かけられるんですが、日本語入力になると制限できないんですよね。
制限する方法を知らないと言ったほうが正しいのかな?(知ってる人いたら教えて〜)
とりあえず半角だけ制限する方法をば
function lengthLock( target, length ) { // Ctrl無効化 if ( event.ctrlKey ) { return false; } // BackSpace, TAB, Delete, Left, Right, Up, Downは許可 if ( event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 46 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 38 || event.keyCode == 40 ) { return true; } if ( target.value.length >= length ) { return false; } } 使い方 <textarea name="test" onKeyDown="return lengthLock( this, 5 );"></textarea>
< |
- Ctrl + Vで貼り付けられないようにする
- 右クリック→貼り付けができないようにする
- BackspaceやDeleteキーその他カーソルキーは使えるようにしなければならない
- 文字数なのかバイト数なのかによっても違う
- 改行はtext.lengthだと2となる