• ベストアンサー

javascriptでの入力制限

テキストボックスに値を入力する時、半角数字しか受け付けない様にjavascriptで制限したいです。 良い方法があれば是非教えて下さい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.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 ※サンプルコードはインデントに漢字空白を使用 しているのでコピペした後で半角空白に変換して ください。

joynus188
質問者

お礼

できました! ありがとうございます!

その他の回答 (1)

  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.1

以下のような感じでどうでしょうか。 半角数字以外が入力された場合、半角数字以外は消去されると思います。 <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>

joynus188
質問者

お礼

回答ありがとうございます! なるほど、そういうやり方もあるのですね。