プロが教えるわが家の防犯対策術!

A、Bという2つのプルダウンメニューがあります。
Aにはaa、bb、ccという項目があらかじめ固定値で入っています。
Bは初期状態ではなにも表示されません。
Aのメニューからaaを選ぶと、Bにdd、eeという項目が表示されます。
Aのメニューからbb、ccを選んだ時はBのプルダウンメニューには何も表示されません。

Aからaaが選ばれたか判定するところまではできたのですが、Bのプルダウンメニューにdd、eeを表示させる方法がわかりません。
どのようにすればうまくいくでしょうか?

HEAD部>>
function GetMenu() {
var index = tstFrm.menuA.selectedIndex;
var str = tstFrm.menuA.options[index].value;
if (str == "aa") {
/************************************************/
/ここがわかりません
/************************************************/
}
}

BODY部>>
<form name="tstFrm" onChange="GetMenu()">
<select name="menuA">
<option value="aa">aa
<option value="bb">bb
<option value="cc">cc
</select>
<select name="menuB">
/************************************************/
/ここもわかりません
/************************************************/
</select>

menuAのvalueがaaの時に、menuBが
<option value="dd">dd
<option value="ee">ee
menuAのvalueがbbまたはccの時に、menuBが
<option value="">
となるようにしたいのです。

アドバイスお願い致します。
わかりにくくてすみません。

A 回答 (3件)

コード書いてみました。



<script><!--
function GetMenu() {
 var str = document.all.menuA.value;
 if (str == "aa") {
  document.all.menuB.options[0].value="dd"
  document.all.menuB.options[0].text="dd"
  document.all.menuB.options[1].value="ee"
  document.all.menuB.options[1].text="ee"
 }else{
  document.all.menuB.options[0].value=""
  document.all.menuB.options[0].text=""
  document.all.menuB.options[1].value=""
  document.all.menuB.options[1].text=""
 }
}
//-></script>

<form name="tstFrm" >
 <select name="menuA" onChange="GetMenu()">
  <option value="aa">aa
  <option value="bb">bb
  <option value="cc">cc
 </select>
 <select name="menuB">
  <option value="">
  <option value="">
 </select>
</form>

ポイントは、
・「tstFrm.menuA」ではなく「document.all.menuA」とする。
・onChangeは(formタグではなく)selectタグに書く。

IE6で動作確認しました。
    • good
    • 0
この回答へのお礼

ありがとうございます。
助かります^^

お礼日時:2004/03/01 09:46

これでいけると思います。

説明は割愛しますので解読してみて下さい。
<html>
<head>
<script>
function GetMenu(str) {
 var frm = document.tstFrm;
//既存option削除
 for (var i=0; i<frm.menuB.length; i++) {
  frm.menuB.options[0] = null;
 }
//option再設定
 frm.menuB.options[0] = new Option("","");
 if(str == "aa") {
  frm.menuB.options[1] = new Option("dd","dd");
  frm.menuB.options[2] = new Option("ee","ee");
 }
}
</script>
</head>
<body>
<form name="tstFrm">
<select name="menuA" onChange="GetMenu(this.value)">
<option value=""></option>
<option value="aa">aa</option>
<option value="bb">bb</option>
<option value="cc">cc</option>
</select>
<br><br>
<select name="menuB">
</select>
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

ありがとうございます。
助かりました^^

お礼日時:2004/03/01 09:47

教えてgoo! の質問を投稿するページで、その動作をしているページがあるので、そのソースを見てみましょう。

    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2004/03/01 09:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!