• ベストアンサー

テキストボックスに数値以外は入力させない方法

社内で使用しているグループウェアで使うための帳票をhtmlで作成しています。 社員が経費などの精算をするのに金額や内容を入力して上司へ提出するためのフォームなのですが、その金額欄に入力する際、半角数字で入力しないと帳票が正しく動作しないのです。 (全角数字や、\や,(カンマ)を入れるとグループウェアが正しく認識してくれない) そのため、金額欄に半角数字以外は入力させないようにしたいのですが、うまくいきません。 スタイルシートで  STYLE="ime-mode:disabled;" を使えば、IEでは上手くいくのですが、NNやOperaでは有効になりませんし、\など記号の入力もできてしまいます。 半角数字以外は入力できなくする、という方法はありますか? そうでなければ、上記の「STYLE="ime-mode:disabled;"」のような内容でNN&Operaでも有効になる方法でも構いません。(せめてNNだけでも…) 説明が下手で申し訳ありませんが、ご存知の方は教えてください。 よろしくお願いいたします。

  • HTML
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
noname#3345
noname#3345
回答No.2

送信時っていうことは、送信ボタン押下時ということでしょうか? テキストボックスのonBlurイベント(フォーカスが離れた時に発生するイベント)またはonChangeイベント(内容が変更された時に発生するイベント)でチェックしてやればいいのでは? 参考URLの「フォーム」「テキストボックスの入力値をチェック」あたりが参考になるかと。 もしくは、こちらの英数チェックを数値チェックのみにカスタマイズしてみるとかでいかがでしょう? http://allabout.co.jp/computer/javascript/subject/msub_001022020.htm

参考URL:
http://homepage1.nifty.com/kodayan/javasc/index.htm
GreenRiver
質問者

お礼

ありがとうございます!これでいけそうです。 大変助かりました。 ありがとうございました!

その他の回答 (1)

noname#3345
noname#3345
回答No.1

スタイルシートで全てのブラウザ(もしくはIEとNN)の入力内容制限はできなかったはずです。 JavaScriptで入力値をひとつづつチェックする、もしくは正規表現でチェックしてはじく、という方法しかないのではないかと思います。

GreenRiver
質問者

お礼

やはりそうですか…(ここで検索してそういった回答があったのですが、もしかしたら、と思って質問したのですが…) JavaScriptで送信時にチェックするという方法は見つけたのですが、帳票とグループウェアの性質上そういった方法が取れない(入力時にチェックするしかない)ので困っています。 ご回答ありがとうございました。

関連するQ&A

  • HTMLのタグ「ime-mode」について

    スタイルシートのime-modeプロパティについての質問です。 <input type="text" name="mail" size="40" style="ime-mode: inactive;"> もしくは <input type="text" name="mail" size="40" style="ime-mode: disabled;"> を使用した場合に、「英数字入力モード」になるはずなのですが 現在試してみたところ、数字しか入力できません。 半角英数字のみ入力可能としたいのですが、数字しか入力出来ないこの原因が分かる方はいらっしゃいませんでしょうか style="ime-mode: active;" とした場合には、正常に日本語入力モードになります。

    • ベストアンサー
    • HTML
  • 半角数字以外の文字をチェックしたい

    現在、次のようなテキストフォーム(一部属性を省略)を利用しています。 <input onchange="if (!this.value) {return false;}" type="text" style="text-align: right; ime-mode: disabled;" /> onChange のときに、this.value に小数点を除く半角数字 ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9") 以外の文字があると、false を返すようにしたいのですが、どう書けば可能しょうか。 正規表現を使うと思うのですが、まだ勉強中でよく分かりません。 よろしくおねがいします。

  • input IMEをoffにしたい

    入る可能性のある文字種は半角英数字のみなので、 style ime-mode: disabled; してるのですが、 最近のPCのブラウザで効かないブラウザはありますか? またもっといい方法あるからこうしたほうが良いなどありましたら、教えてください。

    • ベストアンサー
    • HTML
  • 入力モードを自動的に半角カタカナに

    いつもお世話になっております。 現在作成している画面で、あるテキストフィールドを 半角カタカナで入力する仕様になっています。 そこ以外のテキストフィールドは全角ひらがななので、 style="ime-mode:active;"を指定して対応しているのですが、 半角カタカナを入力するテキストにフォーカスがあたった時、 自動的に半角カタカナに入力モードを切り替える事は出来ますでしょうか?

    • ベストアンサー
    • HTML
  • 「ime-mode: disabled」以外に入力モードチェックは?

    CGIにデータを送信するためのHTMLのフォームで、全角入力をして欲しくない場合に、<INPUT...>タグの中に「ime-mode: disabled」を入れますよね。(確かNetscapeでは機能しなかったように記憶していますが。) この全角排除機能、MacのInternetExplorerではやはり機能しないんですが、確か以前に、MacのInternetExplorerでも、パスワード欄以外でも全角入力が出来ないテキストボックスに出会った記憶があります。 これ、どんな手段で英数入力を強制しているか、どなたかおわかりでしょうか? そのテキストボックスに出会ったその時にソースを見ておくかURLを覚えていたらよかったんですが、もうどこだったかわからなくなってしまったんです。 ご存知の方がいらっしゃいましたらお教え頂きたく、よろしくお願いします。

  • スマートフォン向けフォームで半角英数に固定したい

    スマートフォンで入力するフォームで半角英数に固定したいのですがどうすればいいでしょうか。 style="ime-mode:disabled;" istyle="3" format="*x" MODE="alphabet" 一通りフォームタグに入れてみましたが、固定できません 何か他の記述方法があるのでしょうか? 実験端末はアンドロイドですが、iPhoneにも対応させたいです ネットで検索かけてみましたが、スマホ向けの情報が見つかりませんでした どうかご存じの方ぜひ教えてください

  • 入力フォームのテキスト入力制御(IE)

    Web上で入力フォームを作成し、各入力欄に入力制御を掛けたいのですが、どうすればいいでしょう? 全角かな、半角かな、英数字の制御ができればよいのですが、IEではどのように指定していいのかわかりません。 i-modeでは制御方法はわかったのですが。。。 IEのバージョンは6.0xでお願いします。

  • テキストフィールドに半角数値以外入力させない方法…。

    お世話になります! JavaScriptで、 function checkNum() {  c = String.fromCharCode(event.keyCode);  if ("0123456789".indexOf(c,0) < 0) alert("数値以外入力できません"); } と記述し、実行してみたのですが確かに数値以外は入力できないのですが BackSpaceやEnterキー、Tabキーを押した時にもアラートが発生します…。 本を見て、 function checkNum() {  c = String.fromCharCode(event.keyCode);  if ("0123456789".indexOf(c,0) < 0) return false; return true; } と記述すると、フォーム自体に半角数字しか入力できなくなると書いてあったのですが 実行しても普通に全角入力できました…。(泣) 何か方法ありますか?ご存知の方、宜しくご教授願います★ ちなみに、勿論<input>部分にonKeyDown="***()"の記述はしてますし JavaScriptが有効な状態での実行です。

  • 常に半角で数字を入力する方法

    現在IMEにATOKを使っています。テンキーで全角入力時でも常に半角数字を入力する設定は項目が用意されてるので分かるのですが、キーボード上部の数字キーで全角入力時でも常に半角数字を入力する様に設定するにはどうすればいいのでしょうか?

  • Win10 テキストボックス入力時のモード表示

    ※批判コメント、煽り、知識マウントはご遠慮ください 使用機器:自作デスクトップPC、ノートPC ※キーボード入力のみ 使用OS:Microsoft Windows10(Pro) 使用FEP :IME、ATOK2019 使用ブラウザ:Google Chrome Microsoft Edge ネットショップ等に関わらずブラウザ上でテキストボックスに入力するときに半角数字しか入力を受け付けないところに日本語入力で全角数字を入力し始めたり半角英数小文字入力限定の所に半角大文字で入力しようとしたり、住所等の入力をしようとしたときに日本語入力モードになっていなかったり、画面右下のタスクバーや移動可能なIMEやATOKバーはありますが自分としてはテキストボックスにカーソルが移動した段階で視点移動無しで現在CAPS(ON/OFF)や日本語入力モードかわかるようなツールや設定箇所、ブラウザの拡張機能などございますでしょうか? PC歴約30の小生ですが前々から不便に思ってました。

専門家に質問してみよう