• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォーム内のテキストフィールドにアドレスを入力後、Enterキーを入力して移動したい)

フォーム内のテキストフィールドにアドレスを入力後、Enterキーを入力して移動する方法

このQ&Aのポイント
  • フォーム内のテキストフィールドにアドレスを入力し、Enterキーを押すと、指定したアドレスに移動する方法について教えてください。
  • 以下のコードを使用して、フォーム内のテキストフィールドに入力したアドレスに移動する方法を試しましたが、うまくいきませんでした。
  • 解決策をご存知の方は、教えていただけると助かります。

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

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

こんな流れで良いじゃないかな?(動作未確認) window.onload = function(){ document.getElementById('t').onkeydown = function (ev){ var ev = (!ev) ? event:ev;//Firefox1.5ではevにイベントが入る var key = ev.keyCode;//取り合えずkeyCodeを取る。 alert(key)//Enterキーを押して確認してください。 var mf = (ev.modifiers) ? ev.modifiers : ((ev.altKey) ? 1 : 0) + ((ev.ctrlKey) ? 2 : 0) + ((ev.shiftKey) ? 4 : 0);//NNがmodifiersでIE,FirefoxがctrlKey、shiftKey、altKeyだったかな? alert(mf)//Enterキーを押して確認してください。 var k = key + '_' + mf;//ここでkeyCode_modifiersと言う形を作る。 alert(k)//Enterキーを押して確認してください。 if(k == '13_0'){//Enterキーで装飾キーが押されていない。 url = document.f.t.value; location.href = url; } } }

nana_watuki
質問者

補足

上記の通りにやってみたところFirefox2では動作したのですが IE6では動作しませんでした。(alertは表示されるがページ移動をしない)

その他の回答 (2)

noname#30818
noname#30818
回答No.3

<script type="text/javascript"> window.onload = function(){ document.getElementById('t').onkeydown = function (ev){ var ev = (!ev) ? event:ev;//Firefox1.5ではevにイベントが入る var key = ev.keyCode;//取り合えずkeyCodeを取る。 alert(key)//Enterキーを押して確認してください。 var mf = (ev.modifiers) ? ev.modifiers : ((ev.altKey) ? 1 : 0) + ((ev.ctrlKey) ? 2 : 0) + ((ev.shiftKey) ? 4 : 0);//NNがmodifiersでIE,FirefoxがctrlKey、shiftKey、altKeyだったかな? alert(mf)//Enterキーを押して確認してください。 var k = key + '_' + mf;//ここでkeyCode_modifiersと言う形を作る。 alert(k)//Enterキーを押して確認してください。 if(k == '13_0'){//Enterキーで装飾キーが押されていない。 url = document.f.t.value; url = (url == '') ? './':url location.href = url; return false; } } } </script>

nana_watuki
質問者

お礼

上記の通りにやってみたところ問題を解決することができました。 ご回答いただきどうもありがとうございました。

noname#30818
noname#30818
回答No.1

それで上手く行かないならonkeydownを使ったら如何でしょうか。 OSで違いがあるかもしれませんがEnterキーは event.keyCode==13 event.altKey=flase event.ctrlKey=false event.shiftKey=false または event.keyCode=13 event.modifiers==0 こんな感じだったとおもいました。 その後条件を満たしたら url = document.f.t.value; location.href = url; で上手く行かないかな?

nana_watuki
質問者

補足

以下のように作ってみたのですがうまくいきませんでした。 具体体にはどのようにすればよいのでしょうか? (ちなみに使用しているOSはWindows XP、ブラウザはIE6です) <html> <head> <script type="text/javascript"> function jumpURL() { if( event.keyCode=13 && event.modifiers==0 ) { url = document.f.t.value; location.href = url; } } </script> </head> <body> <form name="f"> <input type="text" name="t" id="t" onKeyDown="jumpURL()"> </form> </body> </html>

関連するQ&A