質問

質問者:shizuku 同一ページに複数のプルダウンメニュー
困り度:
  • 困ってます
同一ページに複数のプルダウンメニュー
同一ページに複数のプルダウンメニューをつけたいのですが、
どうすればよいのでしょうか。

下記のように1つはつけることができたのですが、
2つめから、どこをどう変えて追加すればよいのかわかりません。


<script language="javascript">
<!--
function A_Li(){
Sel=document.Link1.OP.selectedIndex;
Ms=document.Link1.OP.options[Sel].value;
parent.main.location.href=Ms;}
// -->
</script>


<FORM name="Link1">
<SELECT name="OP" onChange="A_Li()" size="1">
<OPTION Value="main.htm" SELECTED>ページを選んでください
<option value="main.htm">ぺージ1</option>
<OPTION Value="abc.htm">ページ2
<OPTION Value="def.htm">ページ3
</SELECT>

よろしくお願いします。
質問投稿日時:2001/10/25 17:05
質問番号:157334
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:leaz024 最低限、違わなければならないのは、SELECT の name 値です。
また、質問のように FORM 名や SELECT 名を直接参照している場合、A_Li() という関数と同じような関数が、もう1つ必要になります。
こんな感じになるでしょうか。

<script language="javascript">
<!--
function A_Li() {
  Sel=document.Link1.OP.selectedIndex;
  Ms=document.Link1.OP.options[Sel].value;
  parent.main.location.href=Ms;}
function B_Li() {
  Sel=document.Link1.OP2.selectedIndex;
  Ms=document.Link1.OP2.options[Sel].value;
  parent.main.location.href=Ms;}
// -->
</script>


<FORM name="Link1">
<SELECT name="OP" onChange="A_Li()" size="1">
<OPTION Value="main.htm" SELECTED>ページを選んでください
<option value="main.htm">ぺージ1</option>
<OPTION Value="abc.htm">ページ2
<OPTION Value="def.htm">ページ3
</SELECT>

<SELECT name="OP2" onChange="B_Li()" size="1">
<OPTION Value="aaa.htm" SELECTED>ページを選んでください
<option value="bbb.htm">ぺージ1</option>
<OPTION Value="ccc.htm">ページ2
<OPTION Value="ddd.htm">ページ3
</SELECT>

もちろん OP2が、OP とは異なる FORM になる場合、B_Li() 内の Link1 という部分も変えなければなりません。

でも、ただページを飛ばすだけの関数を2つも用意するのもなんなので、次のように SELECT オブジェクト自身(this)を関数に渡すようにすれば、関数は1つで済みます。

<script language="javascript">
<!--
function A_Li(obj) {
  Sel=obj.selectedIndex;
  Ms=obj.options[Sel].value;
  parent.main.location.href=Ms;}
// -->
</script>


<FORM name="Link1">
<SELECT name="OP" onChange="A_Li(this)" size="1">
<OPTION Value="main.htm" SELECTED>ページを選んでください
<option value="main.htm">ぺージ1</option>
<OPTION Value="abc.htm">ページ2
<OPTION Value="def.htm">ページ3
</SELECT>

<SELECT name="OP2" onChange="A_Li(this)" size="1">
<OPTION Value="aaa.htm" SELECTED>ページを選んでください
<option value="bbb.htm">ぺージ1</option>
<OPTION Value="ccc.htm">ページ2
<OPTION Value="ddd.htm">ページ3
</SELECT>

thisについては、JavaScriptの本などで調べてみて下さい。
回答日時:2001/10/25 22:13
回答番号:No.1
この回答へのお礼 なるほど、とてもよくわかりました。
きちんと動作しておかげさまで、作業できます。

助かりました。
ありがとうございました!
最新から表示回答順に表示良回答のみ表示