第40回 「セレクトメニューによるジャンプ(2)」


 今回はセレクトメニューを使って指定したページにジャンプする方法の続きです。今回は<option>タグのvalueにジャンプ先のURLを指定し、それを読み込んでジャンプさせるようにします。
 <option>タグのvalueの値を読み出すには以下のようにします。
 
document.フォーム名.セレクトメニュー名.オプション名.value

または

document.フォーム名.セレクトメニュー名.options[参照番号].value

 参照番号は今までも説明したように0から始まります。例えば以下のような
 
<form name="abcFORM">
<select name="adrsSEL">
<option value="abc">No 1</option>
<option value="def">No 2</option>
<option value="ghi">No 3</option>
</select>
 
 フォーム名abcFORMのセレクトメニュー名adrsSELの2番目の<option>のvalueを読み出すには
 
n = document.abcFORM.adrsSEL.options[1].value

のようにします。これで変数nに<options value="def">の値であるdefが入ります。このようにvalueを読み出してlocation.hrefに入れれば指定ページにジャンプすることができます。
 以下のプログラムはthisを使ってジャンプさせるものです。thisを使って汎用性を持たせています。

<html>
<head>
<title></title>
<script language="JavaScript"><!--
function check(fObj)
{
jpURL = fObj.options[fObj.selectedIndex].value;
location.href = jpURL;
}
// --></script>
</head>
<body>
<form>
<select onChange="check(this)">
<option value="http://www.yahoo.co.jp/">Yahoo!</option>
<option value="http://www.goo.ne.jp/">Goo</option>
<option value="http://www.google.com/">Google</option>
</select>
</form>
</body>
</html>

 上記プログラムで関数を呼び出さずonChangeの部分に書いてしまう事もできます。その場合は以下のようになります。
 
<html>
<head>
<title></title>
</head>
<body>
<form>
<select onChange="location.href = this.options[this.selectedIndex].value">
<option value="http://www.yahoo.co.jp/">Yahoo!</option>
<option value="http://www.goo.ne.jp/">Goo</option>
<option value="http://www.google.com/">Google</option>
</select>
</form>
</body>
</html>

 これであれば<option>タグを追加/変更するだけですから大変楽です。プログラムを修正する必要もないためプログラムの変更ミスなどは起こらなくなります。
 
 次回はボタン処理について説明します。





2002-2004 Copyright KaZuhiro FuRuhata (古籏一浩)