Enterキー無効化方法とは?
- フォーム送信時にEnterキーを無効にする方法を知りたいです。
- JavaScriptを使用してEnterキーを無効化する方法を検索しましたが、TEXTAREAの改行もできなくなってしまいます。
- シンプルなコードでEnterキーを無効化する方法を教えてください。
- ベストアンサー
Enter キー 無効について
こんにちは。 フォーム送信において、enter(return)キーを無効にするため、 下記のJavaScriptをネットで検索して利用しました。 function myEvent(aEvent){ var evt = aEvent ? aEvent : (event ? event : window.event); if(evt){ if(evt.keyCode == 13){ return false; } } } window.document.onkeydown = myEvent; しかし、これだとTEXTAREAの改行もできないので、 某サイトで見つけ、次のようにwindow.document....を書き換えました。 <form id='myForm' name='myForm'.....>.......</form> window.document.myForm.author.onkeydown = myEvent; window.document.myForm.kana.onkeydown = myEvent; window.document.myForm.sex.onkeydown = myEvent; window.document.myForm.age.onkeydown = myEvent; window.document.myForm.zip1.onkeydown = myEvent; window.document.myForm.zip2.onkeydown = myEvent; window.document.myForm.pref.onkeydown = myEvent; window.document.myForm.local1.onkeydown = myEvent; window.document.myForm.local2.onkeydown = myEvent; window.document.myForm.phone1.onkeydown = myEvent; window.document.myForm.phone2.onkeydown = myEvent; window.document.myForm.phone3.onkeydown = myEvent; window.document.myForm.fax1.onkeydown = myEvent; window.document.myForm.fax2.onkeydown = myEvent; window.document.myForm.fax3.onkeydown = myEvent; window.document.myForm.email.onkeydown = myEvent; window.document.myForm.subject.onkeydown = myEvent; window.document.myForm.captchaz.onkeydown = myEvent; //////////////// 結果的には、正常に動作します。 しかし、要素が2つ、3つなら気になりませんが、 ちょっとした「お問い合わせ]ページを作っても結構な数になります。 もっとシンプルなコードにならないでしょうか? どうか教えてください。お願いします。
- waterclock
- お礼率85% (175/205)
- JavaScript
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんなのは? ぜんかくくうはくは、はんかくにでも。 //@cc_on document./*@if( @_jscript ) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'keydown', function( evt ){ var e = evt./*@if( @_jscript ) srcElement @else@*/ target /*@end@*/; var keyCode = evt./*@if( @_jscript ) keyCode @else@*/ which /*@end@*/; if( 'TEXTAREA' === e.nodeName ) return; if( 13 === keyCode ) evt./*@if (@V) returnValue = false @else@*/ preventDefault() /*@end@*/; }, false );
その他の回答 (1)
- babu_baboo
- ベストアンサー率51% (268/525)
evt./*@if (@V) returnValue = false @else@*/ preventDefault() /*@end@*/; を evt./*@if (@_jscript) returnValue = false @else@*/ preventDefault() /*@end@*/; にでした。
関連するQ&A
- Tabキーのキャンセル
かなり短期間にこちらでいくつも質問して しまっていて申し訳ないのですが、 どうにも他で回答を調べられず…(<力不足) と言う訳で、しつこく 「IEだけでなくNetscape6以降でも動かしたい」 処理についてお聞きいたします。 IEでは上手く動いてますが、Netscape6以降でTabのキャンセルは指定できるのでしょうか? ちなみに↓のNetscape用関数は動きません(……。) 必要そうな所だけ書き出します↓ function document_onLoad() { // IE 4以降の場合 if (isIE) { // 各種イベントハンドラーの初期化 document.onkeydown = document_onKeyDownIE; } // N6,7の場合 if (isN6) { window.onkeydown = document_onKeyDownN6; } } /// tabキーが入力されたときのイベント処理(IE用) function document_onKeyDownIE() { // TABキー if (event.keyCode == 9) { // 本来のtabの処理をキャンセルする。 event.returnValue = false; } return; } /// tabキーが入力されたときのイベント処理(NN用) function document_onKeyDownN6(evt) { var keyCode = evt.which; if (keyCode == 9) { // 本来のtabの処理をキャンセルする。 evt.returnValue = false; evt.cancelBubble = true; } return; }
- ベストアンサー
- JavaScript
- Altを使ったショートカットキー無効の方法
いつもお世話になってます。 javascriptで、IEのショートカットキーのいくつかを無効にしているのですが、 Altと組み合わせて使うショートカットキーの無効化ができずに困ってます。 例えば、Ctrl+Iでお気に入りを開く処理の無効化はこう実現できました。 function keydown() { if(event.ctrlKey & event.keyCode == 73){ event.keyCode = 0; return false; } } document.onkeydown = keydown; ですが、Alt+Dでアドレスバー選択の無効化は以下では実現できませんでした。 function keydown() { if(event.altKey & event.keyCode == 68){ event.keyCode = 0; return false; } } document.onkeydown = keydown; どうすれば実現できるのか、教えてください。
- 締切済み
- JavaScript
- IE8におけるショートカットキーの無効化方法
タイトルの通り、現在IE8環境で、ショートカットキーを無効にする方法を模索しています。 ネットで調べた結果、イベントを受け取ることまでは成功するのですが、 それを無効化することができません(一部のショートカットキー)。 現在試しているのが Ctrl++→拡大 Ctrl+-→縮小 の二つです。 htmlのバージョンは4.01 Strictを使用しています。 以下ソース window.document.attachEvent('onkeydown', onKeyEvent); window.document.attachEvent('onkeyup', onKeyEvent); function onKeyEvent(e){ if(!e) e = window.event; //確認用 //console.log("Key Code : " + e.keyCode); //console.log("Event Type : " + e.type); //console.log("Ctrl Key : " + e.ctrlKey); if(e.keyCode != 17){ if(e.ctrlKey){ switch(e.keyCode){ case 187: case 189: //e.keyCode = 0; e.returnValue = false; e.cancelBubble = true; //window.event = e; return false; } } } return true; } alert()をいれると無効化できるといった記述も見たのですが、 今回はその方法は使わずに実装する予定です。 どなたか方法をご存知でしたら、ご教授ください。 (コメントアウトしているものも試しましたが、うまくいきませんでした)
- 締切済み
- JavaScript
- 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; の理由がわかりません。 どこを見ると、()なしでいいという情報を得ることができるでしょうか ご教授よろしくお願いします。
- 締切済み
- 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など使用されたくないのですが・・・ 入れ替えなどでも良いのですが。。。 宜しくお願いします。
- 締切済み
- Flash
- 「Alt + ←」の機能(前のページに戻る)を抑止したい
◇環境 ブラウザ:Microsoft Internet Explorer 6.0 SP2 上記の環境で、「Alt + ←」の機能(前のページに戻る)をJavaScriptで抑止したいと考えています。サンプルとして、 window.document.onkeydown = altandArrowDisable(){ if(event.altKey && event.keyCode == 37) { event.keyCode = 0; return false; }else{ return true; } } と書いてみましたが機能(前のページに戻る)を抑止できません。 alert()を付加すると機能抑止できますが、それ以外で実現可能なのでしょうか? 宜しくお願い致します。
- 締切済み
- JavaScript
- 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です。 何故このような動作の違いが発生するのか、御分かりになられる方 どなたか教えて下さい。宜しくお願いします。
- 締切済み
- JavaScript
- テキストボックスをEnterキーで移動する際のビープ音
あるテキストボックスでEnterキーを押すと、次のテキストボックスに移動する スクリプトを組んだのですが、動作はしますが必ず「ブー」というビープ音が 鳴ってしまいます。 たぶん、改行できないテキストボックス内でEnterキーを押すことで、「ダメだよー」 っという警告だと思うのですが、どうにかして消すことはできないのでしょうか? どのような些細なことでも構いませんので、ご教授願います! ~Java Script~ function Change(){ if(event.keyCode==13) document.form.name2.focus(); } ~HTML~ <FORM NAME="form"> <INPUT TYPE="text" NAME="name1" onKeyDown="Change()"> <INPUT TYPE="text" NAME="name2"> </FORM>
- ベストアンサー
- JavaScript
- 一部のテキストだけのKEYCODEを有効にしたい
四苦八苦している初心者です。よろしくお願いします。 バックスペースキーを以下のように無効にしています。 window.document.onkeydown = function () {if (event.keyCode == 8) {event.keyCode = null; return false;}} フォームに有効にしたいテキストが存在するのですが、どのようにしたら有効になりますでしょうか? <input type="text" name="set" size="60" value="ABC"> 全体にバックスペースを無効にし、一部だけ解除したいという内容です。よろしくお願いします。
- ベストアンサー
- JavaScript
- ctrl+vを無効にする方法
タイトルのとおりなのですが、 javascriptで、キー制御(今回は、ctrl+v)をしたいのですが、どうすればよいのでしょうか? ちょっと、調べてみたのですが、 if( ((event.ctrlKey == true) && (event.keyCode == 86))) { event.returnValue = false; return false; } で、できるようなのですが、どのイベントに書けばよいのでしょうか? onkeydownとonkeyupでやってみましたが、ダメでした。 宜しくお願いします。 環境:Win2k(SP4)+IE6(SP1)
- ベストアンサー
- JavaScript
お礼
補足、ありがとうございました。 ばっちり動作しました。心も「すかっ」としました。 本当に助かりました。きれいなコードありがとう。