- ベストアンサー
javascriptでの入力制限
テキストボックスに値を入力する時、半角数字しか受け付けない様にjavascriptで制限したいです。 良い方法があれば是非教えて下さい。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
onKeyDownイベントで、非数字を無効にするのは? <INPUT TYPE="TEXT" ONKEYDOWN="xx()"> function xx() { //Ctrl、Altが押されている時は何もしない if ( event.ctrlKey ) return; if ( event.altlKey ) return; //キーコードを取得する var kc = event.keyCode; //数字の時は何もしない(下段はテンキー) if (( kc >= 0x30 ) && ( kc <= 0x39 )) return; if (( kc >= 0x60 ) && ( kc <= 0x69 )) return; //以下の特殊キーは何もしない switch ( kc ) { case 0x08: return; //BackSpace case 0x09: return; //Tab case 0x0D: return; //Enter case 0x23: return; //End case 0x24: return; //Home case 0x25: return; //← case 0x27: return; //→ case 0x2D: return; //Insert case 0x2E: return; //Delete case 0x16: return; //Shift case 0x17: return; //Ctrl case 0x18: return; //Alt } //上記以外はキー入力が無かったことにする event.returnValue = false; } 特殊キーで他に許可するものがあればswitch文の case節に追加してください。 尚、ブラウザ、あるいはバージョンにより特殊キーの コードが異なる場合があります。 http://www.openspc2.org/reibun/javascript/appendix/keydown.html ※サンプルコードはインデントに漢字空白を使用 しているのでコピペした後で半角空白に変換して ください。
その他の回答 (1)
- mikemike7
- ベストアンサー率87% (97/111)
以下のような感じでどうでしょうか。 半角数字以外が入力された場合、半角数字以外は消去されると思います。 <script type="text/javascript"><!-- var savetext = ""; function textcheck(str){ if(str.match(/^[0-9]+$/)){ savetext = str; } else{ document.getElementById('textarea').value = savetext; //alert('数字だけOKよ'); } } --></script> <textarea onKeyUp="textcheck(this.value)" id="textarea"></textarea>
お礼
回答ありがとうございます! なるほど、そういうやり方もあるのですね。
お礼
できました! ありがとうございます!