HTMLのプルダウンメニューと文字制御についての質問

このQ&Aのポイント
  • HTMLのフォーム上のプルダウンメニューについて文字入力可能か
  • HTMLのテキストで数字のみ入力可能な制御方法について
  • DELETEキーを押した時にイベントを起こす方法と文字コードについての質問
回答を見る
  • ベストアンサー

HTMLのプルダウンメニューと文字制御

HTML/javascriptと文字コードについて三点ほど質問させてください。 1. HTMLフォーム上のプルダウンメニュー(<select name="test"><option>…</option></select>)についてですが、プルダウンメニューに文字入力は可能でしょうか? 2. HTMLのテキスト(<input type="text">)などで数字のみ入力可能になるような制御をしてみたいです。 javascriptのonkeydownイベントを用いて function keyControl(){ //16進数文字コードを用いて0~9の数字以外の場合 if( (event.keyCode < 0x30) || (event.keyCode > 0x40) ){  ?文字入力を反映させない? } } 上記の関数を呼び出す事で制御したいのですが「?文字入力を反映させない?」の部分にはどういうコーディングをすればいいでしょうか? 3. DELETEキーを押したときにあるイベントを起こしたいと考えてます。 javascriptのonkeydownイベントを用いて function testDELETE_Enter(){ if( event.keyCode==0x7f ){ alert('DELETEキーを押下しました!'); } } 上記の関数を呼び出すことで制御したいのですが、if文の条件判断がうまくいかなくて、Deleteキーを押した時alert()を実行する事が出来ません。 下記のサイトでDELキーの文字コードは0x7fだと思うのですが、これは私の勘違いでしょうか? http://e-words.jp/p/r-ascii.html 以上三点、解る方いましたらご教授お願いします

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

1. プルダウンメニューに文字入力はできません。 擬似コンボボックスとして以前に作成した http://okwave.jp/kotaeru.php3?q=1316939 が使えるかもしれません。 2. IEのみのコードですが、以下の様にします function keyControl(){ //16進数文字コードを用いて0~9の数字以外の場合 if( (event.keyCode < 0x30 || event.keyCode > 0x39) && (event.keyCode < 0x60 || event.keyCode > 0x69) ){ event.returnValue=false; } } 3. onkeydown の時のキーコードはアスキーキーコードとは異なるようです。 Delete キーの場合 0x2e のようです

関連するQ&A

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

    お世話になります! 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が有効な状態での実行です。

  • ファンクションキー制御?

    こんにちわです。 タイトル通りなのですが、 JSでは、 function kdown(e) {var msg =""; var flg = 1; switch(window.event.srcElement.tagName){ case "INPUT" :if(event.srcElement.type != "text" && event.srcElement.type != "password" && event.keyCode!=9 && event.keyCode!=16 && event.keyCode!=32){return false;}else{flg=0;}break; case "TEXTAREA" :flg = 0;break; case "SELECT" :flg = 0;break; case "A" :flg = 2;break; } switch(event.keyCode){ case 8 :msg = "BS";break; case 78 :if(event.ctrlKey){msg = "Ctrl+N";}break; case 82 :if(event.ctrlKey){msg = "Ctrl+R";}break; case 116 :msg = "F5";break; case 122 :msg = "F11";break; } if(event.altKey){msg = "Alt";} if (flg == 0 ){switch(event.keyCode){case 8 :msg = "";break;case 13 :msg = "";break;}} else if (flg == 2 && event.keyCode==13)msg = ""; if(msg != ""){event.keyCode = 0;return false;}else{return true;} } document.onkeydown = kdown; こんな感じに制御するのを、 アクションスクリプトで制御出来ますか? HTMLにこのJS埋め込んでも、FLASHの所クリックして、 各キー押すと意味なくなってしまうので・・ F5やF11など使用されたくないのですが・・・ 入れ替えなどでも良いのですが。。。 宜しくお願いします。

  • HTMLで入力値を半角大文字に制御

    こんにちわ。 HTMLで入力される場合、必ず半角大文字に制御したいのですが、 スタイルシートはIMEのオン・オフしか制御できず、大文字に 固定制御することができません。 JavaScriptでonChange時にでも入力値を大文字に変換という手も あると思うのですが、出来たらそんな面倒なことをせずとも 制御したいと思っています。 もし良い方法がありましたら、是非、教えて下さい。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • HTML
  • ctrl+vを無効にする方法

    タイトルのとおりなのですが、 javascriptで、キー制御(今回は、ctrl+v)をしたいのですが、どうすればよいのでしょうか? ちょっと、調べてみたのですが、 if( ((event.ctrlKey == true) && (event.keyCode == 86))) { event.returnValue = false; return false; } で、できるようなのですが、どのイベントに書けばよいのでしょうか? onkeydownとonkeyupでやってみましたが、ダメでした。 宜しくお願いします。 環境:Win2k(SP4)+IE6(SP1)

  • 日本語入力の禁止

    お世話になります。 divにcontenteditable属性を付与して編集できるようにしました。 そのとき、日本語は入力禁止にしたいのですがime-modeはdivには使用できないみたいです。 日本語入力のときはkeycode229が返ってくるようなのでjavascriptでonkeydownのときに if (event.keyCode == 229) { return false; } というif文を入れてみました。alertとかで確認するとちゃんと日本語入力の時にはこのif文を通過しているみたいなのですが 日本語が入力されてしまいます。 div contenteditable=trueのときに日本語入力を禁止したい場合はどのようにすれば実現できるのでしょうか。 <div contenteditable=true onkeydown="return test();">編集テスト</div> function test() { if (event.keyCode == 229) { return false; } return true; } よろしくお願いします。

  • Altキー+○キーでのショートカットの制御

    お世話になります。 papillon68と申します。 Windows 2000、XP IE6以降限定 ブラウザでAlt+○キーを押すことで様々な操作をキーボードのみで 行うことができます。 (参考:http://www.clubqa.com/weekly/qa020403.htm) 今回行いたいことはこのキーボードのみでの操作の 一部を制限したいというものです。 例えば、 ・Altキー+←キーで一つ履歴が戻ります。[history.back(-1)] ・Altキー+→キーで一つ履歴が進みます。[history.back(1)] これを制限するために ----------------------------------------- // Altキー+←キーの制限 if((event.altKey) && (event.keyCode==37)) { // チェック用 //alert('通った'); event.keyCode = 0; return false; } ----------------------------------------- としていますが、一つ前の画面に戻ってしまいます。 alert()を使って実際にif内を通っているかを チェックしてみると通っていないようです。 同じようにCtrlの場合だと同じ方法で制限することができました。 ----------------------------------------------- // 更新の制限(Ctrl+R) if((event.ctrlKey) && (event.keyCode==82)) { // チェック用 // alert('通った'); event.keyCode = 0; false; } ----------------------------------------------- こちらはアラートが表示され、ページが更新されません。 Altキーの場合もCtrlキーと同じように制限することはできないでしょうか。 お手数をお掛け致しますが、ご教授よろしくお願い致します。

  • キーボードで画像を動かす方法

    javaScriptで、 if (event.keyCode == 38) UP(); if (event.keyCode == 39) RIGHT(); if (event.keyCode == 37) LEFT(); if (event.keyCode == 40) DOWN(); のような処理で、上下左右の方向に画像などを移動させています。 しかし、上キーと右キーを同時に押しても 右上には移動しません。 率直にJavaScriptでキーボード入力を行って 右上、右下、左上、左下のように 2つのキーを同時に押したことを判定する方法は ありますでしょうか? ためしに&&を用いて 上キーと右キーが押されたとき用にUP_RIGHT() を作ってコールしたのですが思ったように動かないようでした。 どうかご教授ください。

  • return falseが効かない(F5キーの無効化)

    JavaScriptでF5キーの無効化をしています。 以下のソースで一応は実現できていますが、1台のマシンだけ 無効化されないものがあります。 =================== <html> <head> <title>F5キーを無効にする</title> <script language="JavaScript"> <!-- window.document.onkeydown = function () { if (event.keyCode == 116) { alert("来た"); event.keyCode = null; return false; alert("来てない"); } } //--> </script> </head> <body> </body> </html> =============== 該当のマシンでF5キーを押すと「来てない」のアラートは出ない のですが、再読み込みがされてしまいます。他の端末では 再読み込みはされません。 以下のようなサイトでJavaScriptのバージョン差異を確認しましたが 再読み込みがされる/されない端末では全て一致しました。 http://diaspar.jp/node/49 「インターネットオプション」-「セキュリティの設定」に ついても差異が見られませんでした。 OSはWindowsXpSP2 ブラウザはIE6.0SP2です。 何故このような動作の違いが発生するのか、御分かりになられる方 どなたか教えて下さい。宜しくお願いします。

  • onkeydownでprintscreenは

    onkeydownイベントでprintscreenキーだけkeycodeが 取得できません。 onkeydownイベントではprintscreenキーは使えないのでしょうか?

  • document.onkeydownについて

    HTML5で、javascriptの中に、 ============ソース一部=========== //関数 function a(evt) { if (evt.keyCode == 39) rD = true; } document.onkeydown = a; ============ソース一部 ここまで=========== と記述されている文がありました。  document.onkeydown = a; で、onkeydownに、a関数を登録したのだろうということまでは 予想がつくのですが、aの後ろに()は不要なのでしょうか? キーが押されたイベントが、evtには自動で入ってると思うのですが、 関数登録?呼び出し宣言をするときに、  document.onkeydown = a(); ではなく  document.onkeydown = a; の理由がわかりません。 どこを見ると、()なしでいいという情報を得ることができるでしょうか ご教授よろしくお願いします。

専門家に質問してみよう