テキストフィールドに数値以外入力できないようにする【NN】


動作ブラウザ 【 IE:3.0  NN:2.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows × - × × - × -
Macintosh × - × × - - ×
UNIX - - - - - × × - - -
Dreamcast - - - - - - - - - - × × -

ポイント c = String.fromCharCode(evt.which); if ("0123456789".indexOf(c,0) < 0) alert("数値以外入力できません"); <input type="text" onKeyDown="checkNum(event)">
説  明 テキストフィールドに数値以外入力できないようにするにはテキストフィールドのタグ内にonKeyDownイベントを記述します。これによりキー入力が行われるたびに指定した関数が呼び出されます。関数内ではString.fromCharCode()を使い入力コードから文字に変換しindexOf()を使って数値かどうかを調べます。
サンプル <html> <head> <title>テキストフィールドに数値以外入力できないようにする</title> <script Language="JavaScript"><!-- function checkNum(evt) { c = String.fromCharCode(evt.which); if ("0123456789".indexOf(c,0) < 0) alert("数値以外入力できません"); } // --></script> </head> <body> <form> <input type="text" onKeyDown="checkNum(event)"> </form> </body> </html>
補足説明 NN6でテンキーを押した場合、正常に動作しません。

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA