• ベストアンサー

テキストエリアからボタンによって送り先を変えるには?

こんにちは。 ひとつのテキストエリアから、ボタンの違いによって送り先を変更することは可能なのでしょうか? 具体的にやりたいことは、「検索デスク」と言うサイトのように、入力フォームは同一でもボタンの違いによって送り先が変わっています。 やりたいことは「検索デスク」さんと同一なのですが、ソースを拝見しても良くわかりませんでした。 大手のサーチエンジンの検索窓を羅列することはできるのですが、もう少しスマートにしたいです。(^^ゞ わたしのスキルは質問ID195803のとおり、JavaScriptを良く理解していないようです。 よろしくおねがいします。<(__)>

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

検索に必要なフォームの内容は、検索サイトごとに異なります。 ですので、検索サイトごとにフォームを用意して、押されたボタンによって使うフォームを切り替えるとよいでしょう。 必要なフォームの内容は、検索サイトごとに用意されていますので、それを利用します。(参考URLを参照) ただし、そのままでは検索窓などが表示されてしまうので、type を hidden にして下さい。(スタイルシートの display:none を使うと、NNで動作しないようです。) 下記に、IE5.5 / NN4.7 / NN6.2 動作確認済みのソースを記載します。 ■HEAD内 <SCRIPT language="JavaScript"><!-- function search(btn) {   with (window.document) {     forms[btn.name][ forms[btn.name].alias.value ].value = btn.form.word.value;     forms[btn.name].submit();   } } //--></SCRIPT> ■BODY内 <!-- 共通入力フォーム -->  <FORM>   <INPUT type="text" name="word">   <INPUT type="button" name="google" value="Google 検索" onClick="search(this)">   <INPUT type="button" name="yahoo" value="Yahoo! 検索" onClick="search(this)">  </FORM> <!-- Google フォーム -->  <FORM name="google" action="http://www.google.com/search" target="_blank">   <INPUT type="hidden" name="alias" value="q">   <INPUT type="hidden" name="q" value="">   <INPUT type="hidden" name="hl" value="ja">  </FORM> <!-- Yahoo! フォーム -->  <FORM name="yahoo" action="http://search.yahoo.co.jp/bin/search" target="_blank">   <INPUT type="hidden" name="alias" value="p">   <INPUT type="hidden" NAME="p" value="">  </FORM> # 各検索サイト用フォーム内にある alias という名の hidden オブジェクトは、スクリプトを簡単にするための工夫です。 # 検索サイトを追加する時は、検索ボタンの name と、サイト用 FORM の name を、同じ名前にして下さい。

参考URL:
http://www.google.co.jp/intl/ja/searchcode.html,http://howto.yahoo.co.jp/homepage/3/1.html
takahito
質問者

お礼

スクリプトを参考にして、思い通りに出来ました。 どうも、ありがとうございました。

takahito
質問者

補足

ありがとうございます(T_T) 感動のあまり涙が出そうです。(笑) サンプルをそのまま使用させていただいたところ、まさに求めていたものが再現できそうです。 コレを元に他の検索エンジンも自分で加えてみたいと思います。 この事で色々検索していたのですが見つけることが出来ず、困っておりましたのでとても助かりました。 解決しましたが、実際に作成してみますので1日ほど、質問は締め切らずにおきます。 重ねて、ありがとうございました。

その他の回答 (1)

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

<HTML> <HEAD> <Script Language="JavaScript"> function form_submit2() { document.submit_form.action = "test2.html"; document.submit_form.submit(); } </Script> </HEAD> <BODY> <form action = "test1.html" method = "post" name = "submit_form"> <input type = "text" name = "hoge"><br> <!-- test1 へ遷移 --> <input type = submit><br> <!-- test2 へ遷移 --> <input type = button onClick="form_submit2()"><br> </form> </BODY> </HTML> こんな感じでしょうか? 内容としては下のボタンを押下したときにJavaScriptのform_submit2という関数を呼び出します。 その関数の中身でFormのSubmit先を変更してその後に強制的にSubmitさせます。

takahito
質問者

補足

早速の回答ありがとうございます。 送り先のサーチエンジンに入力キーワードを検索させたいのですが、Submitさせるだけで可能でしょうか? ちょっと試してみましたが、できませんでした。 (test.htmlをhttp://www.google.com/searchに変更してみました) 私の理解が間違っているのでしょうか?

関連するQ&A