- - PR -
[JavaScript] 数値以外を入力不可にするには(BS、deleteは可)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-12-05 13:07
テキストボックスに数字以外を入力できないようにしたいのですが、
同時にBackSpaceとDeleteも入力できるようにするには、 どのようにすればよいのでしょうか? 下記のコードだと、 数字しか受け付けないので困っています。 function checkNum() { c = String.fromCharCode(event.keyCode); if ( "0123456789".indexOf(c,0) < 0) return false; return true; } <form> <input type="text" onKeyDown="return checkNum()"> </form> | ||||
|
投稿日時: 2007-12-05 13:25
BackSpaceとDeleteのキーコードを判定すればよいです。
キーコードは自分で調べてください。 | ||||
|
投稿日時: 2007-12-05 13:47
Deleteを有効にするのであれば、Home,End,→,←が無効だと意味がないような・・。となると
"0123456789\b\x23\x24\x25\x27\x2e".indexOf(c,0) などと書かないといけないかもしれませんね。あと10キーのキーコードとかIE以外のブラウザへの対応はどうしましょう・・ http://www.openspc2.org/reibun/javascript/appendix/keydown.html ∴ テキスト全体をチェックした方が環境を選ばなくていいような気はします。 | ||||
|
投稿日時: 2007-12-05 14:32
ググってみました。
クロスブラウザ対応の処理 http://phpspot.org/blog/archives/2006/12/javascript_35.html
こんなのを作りたいのでは? http://livesearch.alltheweb.com/ 数値だと郵便番号検索から住所を導くのかな。 | ||||
|
投稿日時: 2007-12-05 15:16
とりあえず誰かが突っ込むのを待ってましたが
マウスでペーストされたら入力制限の意味がないですよねー。 個人的にはWebアプリケーションでの入力制御ほど無意味なものはないと思います。 (やるなら個別で入力制御せず最後にチェックする) _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||
|
投稿日時: 2007-12-05 17:45
つ InputMask
http://www.assistedsolutions.com/components/inputmask/default.aspx | ||||
|
投稿日時: 2007-12-06 11:25
みなさま、ご返答ありがとうございました。
技術的に簡単にできそうではなく、スケジュールも迫っているので、 暫定的にonChangeチェックすることにしました。 後日、仕事が一段落したらonKeyDownで対応してみます。 |
1