• ベストアンサー

セレクトメニューから該当するページを表示

下記コードを作成しました。 セレクトメニューを選択したら該当するページを表示させるプログラムです。 <select name="cmbSel" onChange="PageJump()"> <option>トップページ1</option> <option>トップページ2</option> 上記だけでリンクページへ飛ぶような事はできないのでしょうか? どなたかご存知の方いましたらご教授頂けると幸いです。 宜しくお願い致します。 ///////////////////////////////////////////////////////////////// </select> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <script language="JavaScript" type="text/javascript"> <!-- function PageJump() { var sts; sts = document.frmMain.cmbSel.selectedIndex; switch (sts) { case 0: location.href="http://www.yahoo.co.jp/"; case 1: location.href="http://weather.yahoo.co.jp/weather/"; } } // --> </script> <form name="frmMain"> <select name="cmbSel" onChange="PageJump()"> <option>トップページ1</option> <option>トップページ2</option> </select> </form> </HTML>

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

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

<select name="cmbSel" onChange="location.href=this.options[this.selectedIndex].value"> <option value="http://www.yahoo.co.jp/">トップページ1</option> <option value="http://mail.yahoo.co.jp/">トップページ2</option> </select>

a50
質問者

お礼

有難うございます。 ただ単に onChange="location.href=this.options[this.selectedIndex].value">にすればよかったのですね。

その他の回答 (3)

回答No.3

#2です。 すみません。 ソース中の「alert(sts);」はデバック用につけたので、はずしてください。

回答No.2

こんにちは。 ソースをコピーして実際に実行してみました。 break文がないため、case 0の場合にも、case 0の処理を実行後に、case 1の処理が実行されているようです。 結果的にトップページ1とトップページ2のどちらを選択しても、トップページ2が表示されてしまうのです。 以下のようにソースを修正してみてください。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <script language="JavaScript" type="text/javascript"> <!-- function PageJump() { var sts; sts = document.frmMain.cmbSel.selectedIndex; alert(sts); switch (sts) { case 0: location.href="http://www.yahoo.co.jp/"; break; case 1: location.href="http://weather.yahoo.co.jp/weather/"; break; default: location.href="http://mail.yahoo.co.jp/"; } } // --> </script> <form name="frmMain"> <select name="cmbSel" onChange="PageJump()"> <option>トップページ1</option> <option>トップページ2</option> </select> </form> </HTML> また、default:以下の部分は、stsが0でも1でもない場合に実行されます。 必須ではありませんが、switch文を記入する際には、default文を合わせて記入することをオススメします。 参考URLの内容もご覧になって見て下さい。

参考URL:
http://www.site-cooler.com/kwl/javascript/6.htm#6-3
a50
質問者

補足

セレクトメニューとちょっとしたスクリプトだけで作成できるような感じで作りたいのです。 下記コードのようにURLをフォームに埋め込んで使うようなやり方です。 <select name="cmbSel" onChange="PageJump()"> <option value="http://www.yahoo.co.jp/">トップページ1</option> <option value="http://mail.yahoo.co.jp/">トップページ2</option> 上記では実行できませんが、何かにアレンジする事により 下記ページの「右上のセレクトボックス」のスクリプトを参考 http://www.otaku-town.com/ 宜しくお願い致します。

  • coboler
  • ベストアンサー率57% (57/99)
回答No.1

switch文を switch (sts) { case 1: location.href="http://www.yahoo.co.jp/"; break; case 2: location.href="http://weather.yahoo.co.jp/weather/"; break; } として、select部分を <select name="cmbSel" onChange="PageJump()"> <option></option> <option>トップページ1</option> <option>トップページ2</option> </select> とすれば、正しく動作すると想います。

a50
質問者

補足

アドバイス有難うございます。 質問したコード実行可能です。 Break文が抜けていたのは質問ミスです。

関連するQ&A