• ベストアンサー

一行テキストボックス内でEnterキーに対応したい

一行テキストボックス内でEnterキーに対応したい BingやYahoo!などの検索サイトをリストボックスから選んで検索できる検索ボックスを制作しています。 現在、検索ボタンを押したときに、検索サイトのURLにジャンプする処理には成功しています。 document.location = urlbefore + encodeURI(document.all('sf').searchBox.value) + urlafter; これを検索BOX内でEnterキーを押したときにも実行させるにはどのようにすればよいのでしょうか。

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

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

一行テキストボックス内でEnterキーに対応したい  | テキストボックス内でキーが押される都度にJavaScriptのキーチェック関数をコールしたい  | そのキーチェック関数内で{ENTER}を感知したら検索ボタンが押されたアクションをしたい 質問の主旨が、仮にこのようであれば・・・。 onkeypress="searchAction(event);" と、onkeypressイベントでJavaScriptの次の関数をコールします。 function searchAction(event) {   var kcode = 0;   if (event.keyCode !=0) {kcode = event.keyCode;} else {kcode = event.charCode;}   if (kcode == 13) {   try {event.keyCode = 0;} catch(ex) {};     ここで検索ボタンが押された場合の処理をコール   } } ポイントは、引数にeventと書くことです。 kcode = event.keyCode;・・・・・・・・・・・・ IE用 kcode = event.charCode;・・・・・・・・・・・ FireFox用 キーコードの取得要領はブラウザによって違いまのでの、このようになります。 try {event.keyCode = 0;} catch(ex) {};・・・・ IE用 IEでは{ENTER}キーはキャンセルしておいたが無難です。 的外れであったなら無視してください。

talosoft
質問者

お礼

ご回答ありがとうございます。 教えていただいた方法でやりたかったことを 実現することができました。 また、JavaScriptでのキーの取得方法は大変勉強になりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

検索ボタンを「デフォルト」に設定しておく。 テキストボックス内での[Enter]を拾うのではなくForm上での動作です。 たとえばgoogleさんのページで「google検索」ボタンの右と下が「影付き」でしょ? 隣の「I'm Feeling Lucky」と比較したら差がお分かりかな? キーワード「javascript ボタン デフォルト」でgoogle検索したら、トップに出てくるページが参考になりそうです。

すると、全ての回答が全文表示されます。

関連するQ&A