• ベストアンサー

セレクトメニューの連動 multipleについて

複数選択の場合の方法がわからずに困っております。 ご教授くださいますようお願い申し上げます。 大項目Aというセレクトメニューがあり、選択項目が40コ程あります。 たとえば、Aのセレクトメニューの項目「靴」が選択されたら、 「靴」に関連する中項目のセレクトメニューがON(選択可能)になるといった感じで設置しております。 30コ程のセレクトメニューがあります。 下記がjavascriptの中身です。 function selectChange() { var selectedNum = document.score.cate1.selectedIndex; if(selectedNum == 01 | selectedNum == 02 | selectedNum == 03 | selectedNum == 04 | selectedNum == 05 | selectedNum == 06 | selectedNum == 07 | selectedNum == 08 | selectedNum == 09 | selectedNum == 10 | selectedNum == 11) { document.score.co1.disabled = false; document.score.co1.style.backgroundColor='#ffffff'; } else { document.score.co1.disabled = true; document.score.co1.style.backgroundColor='#efefef'; } } function selectChange2() { var selectedNum = document.score.cate1.selectedIndex; if(selectedNum == 01 | selectedNum == 02 | selectedNum == 03 | selectedNum == 04 | selectedNum == 05 | selectedNum == 06 | selectedNum == 07 | selectedNum == 08) { document.score.so.disabled = false; document.score.so.style.backgroundColor='#FFFFFF'; } else { document.score.so.disabled = true; document.score.so.style.backgroundColor='#EFEFEF'; } } function selectChange3() { var selectedNum = document.score.cate1.selectedIndex; if(selectedNum == 09) { document.score.bl1.disabled = false; document.score.bl1.style.backgroundColor='#FFFFFF'; } else { document.score.bl1.disabled = true; document.score.bl1.style.backgroundColor='#EFEFEF'; } } 今まではこれで問題なく動いていましたが、 今回大項目Aを複数選択できるようにしました。 「靴」と「服」を選択した場合、 靴と服に関連する中項目をONにしたいのですが、先頭の「靴」のみしかONになりません。 いろいろ調べたのですが、さっぱりわからず困っております。 知識が少ないので、ご迷惑をおかけいたしますが宜しくお願いいたします。

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

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは 30個optionを書くの面倒だったので自動作成させてますのでwindow.onload=function(){ }は忘れてください function op(){ }の部分が質問の回答になるかと思います セレクトメニューで『0』『12』『28』を選択すると左のセレクトメニューが 『1』『18』を選択すると右のセレクトメニューが選択可能になり それ以外を選択すると選択不可能になります Ctrl+クリックで複数選択可です IE6.0でしか機能確認はしていませんので他のでできなかったらごめんなさいm(--)m <SCRIPT language="JavaScript"> <!-- window.onload=function(){ obj0=document.form.s0; obj1=document.form.s1; obj2=document.form.s2; for(j=0; j<30; j++) { obj0.options[j] = new Option(j); obj1.options[j] = new Option(j); obj2.options[j] = new Option(j); } } //--> <!-- function op() { obj=document.form.s0; if(obj.options[0].selected | obj.options[12].selected | obj.options[28].selected){ document.form.s1.disabled = false; } else{ document.form.s1.disabled = true; } if(obj.options[1].selected | obj.options[18].selected ){ document.form.s2.disabled = false; } else{ document.form.s2.disabled = true; } } /--> </SCRIPT> <form name="form"> <select name="s0" multiple size="5"></select> <input type="button" value="open" onclick="op()"> <select name="s1" disabled></select> <select name="s2" disabled></select> </form>

isarlin
質問者

お礼

ご返事が大変遅くなり申し訳ございません! ご丁寧に記述いただいたおかげで、思い通りの結果を得られました!! 本当に有難うございます!! すごく助かりました。 有難うございました!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

selectedIndexで得られるのは先頭のインデックス番号のようです。 multipleを処理するのであれば、すべてのオプションをしらべて selectedされていれば処理をいれるようにすべきでしょう。 サンプル: <script language="javascript"> function test(f){ var cate1=f.cate1; for(var i=0;i<cate1.length;i++){ if(cate1[i].selected) alert(cate1[i].value) } } </script> <form> <select name="cate1" multiple> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <input type=button value="チェック" onClick="test(this.form)"> </form>

isarlin
質問者

お礼

早速のご回答を有難うございます。 サンプルを試してみると、複数選択でも確かにアラートが出ていました。 これを、少し変えて複数選択で値を渡すようにすればいいのは理解できるのですが、色々さわってみても思ったような動作をしてくれません。 丁重にサンプルまで頂いたのに、理解不足(知識不足)で申し訳ございません。 まず、 function test(f){ var cate1=f.cate1; for(var i=0;i<cate1.length;i++){ if(cate1[i].selected) alert(cate1[i].value) } } をどの部分に追加すればよいでしょうか? もう、ほんとに申し訳ございません・・・

関連するQ&A

  • セレクトメニューの4連動

    いつも参考にさせて頂いております。 javascript初心者です。 現在、javascriptにてセレクトメニューの4連動を作成しているのですが、4つ目のセレクトメニューを正常に動かすことが出来ません・・・。何とか3つまでは動くようになったのですが・・・。忙しいところを申し訳ありませんが、教えて下さい。 一つ目のセレクトで、地域の選択 二つ目のセレクトで、県の選択 三つ目のセレクトで、「プレイスポット」か「食事」の選択 四つ目のセレクトでは、 プレイスポット名(三つ目でプレイスポット選択時) お店名(三つ目で食事選択時) 上記したようにしたいのです。宜しくお願いします。 <html> <head> <script type="text/javascript"> <!-- var area=0; function setA(n) { aa=n; data1 = [ ["東京","神奈川"], ["大阪","神戸"], ]; len = document.form1.box_a.options.length; for(i=len-1; i>0; --i) document.form1.box_a.options[i] = null; if(n!=0) { document.form1.box_a.style.visibility = "visible"; for(i=0; i<data1[n-1].length; i++) document.form1.box_a.options[i+1] = new Option(data1[n-1][i]); } setB(0); } function setB(n) { data2 = [ [["プレイスポット","食事"],["プレイスポット","食事"]], [["プレイスポット","食事"],["プレイスポット","食事"]] ]; len = document.form1.box_b.options.length; for(i=len-1; i>0; --i) document.form1.box_b.options[i] = null; if(n==0)return; document.form1.box_b.style.visibility = "visible"; for(i=0; i<data2[aa-1][n-1].length; i++) document.form1.box_b.options[i+1] = new Option(data2[aa-1][n-1][i]); setC(0); } function setC(n) { data3 = [ [[["としまえん","よみうりランド"],["キハチ","久兵衛"]]], [[["江ノ島","鎌倉"],["カレーミュージアム","中華街"]]], [[["ユニバーサルスタジオ","天王寺動物園"],["かに道楽","金龍ラーメン"]]], [[["須磨海浜水族園","グリコピア"],["コンチェルト","六甲山牧場"]]] ]; len = document.form1.box_c.options.length; for(i=len-1; i>0; --i) document.form1.box_c.options[i] = null; if(n==0)return; document.form1.box_c.style.visibility = "visible"; for(i=0; i<data3[aa-1][n-1][n-1].length; i++) document.form1.box_c.options[i+1] = new Option(data3[aa-1][n-1][n-1][i]); } //--> </script> </head> <body> <form name="form1"> <select name="sel1" onChange="setA(this.selectedIndex)"> <option value="0" selected>▼選択してください</option> <option value="1">関東</option> <option value="2">関西</option> </select> <select name="box_a" onChange="setB(this.selectedIndex)"><option value="0" selected>---------------</option></select> <select name="box_b" onChange="setC(this.selectedIndex)"><option value="0" selected>---------------</option></select> <select name="box_c" onChange=""><option value="0" selected>---------------</option></select> </form> </body> </html>

  • セレクトの内容に応じてラジオボタンを自動選択する方法

    <script type="text/javascript"> function selectChange(){ var selectedNum = document.form1.Q1.selectedIndex; if(selectedNum == 0 | selectedNum == 1) { document.formGeneratorForm1.Q2[0].disabled=false; document.formGeneratorForm1.Q2[1].disabled=false; }else{ document.formGeneratorForm1.Q2[0].disabled=true; document.formGeneratorForm1.Q2[1].disabled=true; } } </script> <select name="Q1" onchange="selectChange()"> <option value="0" selected >AAA</option> <option value="1" >BBB</option> <option value="2" >CCC</option> </select> <input type="radio" name="Q2" value="0" />000 <input type="radio" name="Q2" value="1" checked/>111 上記のソースでQ1でCCCを選択した時に、Q2で000を選択していたとしても111に自動的にチェックを入れる方法をご教授下さい。よろしくお願い致します。

  • セレクトメニューからもう一つのセレクトメニューを選択したか確認

    「ブロック名」のセレクトメニューを選択すると、選択した項目によってもう一つ「部署名」のセレクトメニューが出て選択するようにしました。 送信前に「ブロック名」だけでなく、「部署名」も選択したかそうか確認したのですが、どうしでも出来ません。 いろいろ試しても出来なくて困っています。 ぜひ教えてください。 よろしくお願いいたします。 ---------------------------------------------------------------- menuItem =[[" "], ["(2) 部署を選択 ","あああ","いいい"],      ["(2) 部署を選択 ","ううう","えええ"], ["(2) 部署を選択 ","おおお","かかか"],      ["(2) 部署を選択 ","ききき","くくく"]]; function setMenuItem(n) { len = document.form2.BUSYO.options.length; for (i=0; i<len; i++) { document.form2.BUSYO.options[i] = null; } document.form2.BUSYO.style.visibility = "visible"; for (i=0; i<menuItem[n].length; i++) { document.form2.BUSYO.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } ---------------------------------------------------- <SELECT size="1" name="AREA" onchange="setMenuItem(this.selectedIndex)" style="color : #3d3d3d;"> <OPTION value="0" selected>(1) ブロックを選択 </OPTION> <OPTION value="Aブロック">Aブロック</OPTION> <OPTION value="Bブロック">Bブロック</OPTION> <OPTION value="Cブロック">Cブロック</OPTION> <OPTION value="Dブロック">Dブロック</OPTION> </SELECT> <SELECT size="1" name="BUSYO" style="color : #3d3d3d;visibility : hidden;"> <OPTION selected value="0"></OPTION> </SELECT> ---------------------------------------------------------------- 確認用 if(document.form2.AREA.value=="0"){ alert("ブロックを選択してください"); return false; } return true; }

  • セレクトメニュー選択でもう一つセレクトメニューを出す

    「ブロック名」のセレクトメニューを選択すると、選択した項目によってもう一つ「部署名」のセレクトメニューが出て選択するようにしたいと思い、途中まで作成しました。 しかし、「ブロック名」を「Aブロック」選択しても「部署名」が「Bトップ~」が出てしまいます。 何がおかしいのか分からないので、ぜひ教えてください。 よろしくお願いいたします。 menuItem = [  ["Aトップ","A本部","B本部","C本部"], ["Bトップ","1本部","2本部","3本部"], ["Cトップ","あ本部","い本部","う本部"],         ["Dトップ","●本部","▲本部","◆本部"] ]; function setMenuItem(n) { len = document.form2.BUSYO.options.length; for (i=0; i<len; i++) { document.form2.BUSYO.options[i] = null; } document.form2.BUSYO.style.visibility = "visible"; for (i=0; i<menuItem[n].length; i++) { document.form2.BUSYO.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } ---------------------------------------------------------------- <SELECT size="1" name="Block" onChange="setMenuItem(this.selectedIndex)"> <OPTION selected value="0">選択してください</OPTION> <OPTION value="a-block">Aブロック</OPTION> <OPTION value="b-block">Bブロック</OPTION> <OPTION value="c-block">Cブロック</OPTION> <OPTION value="d-block">Dブロック</OPTION> </SELECT> <SELECT size="1" name="BUSYO" style="visibility:hidden"> <OPTION selected value="0">選択してください</OPTION> </SELECT>

  • オブジェクトを指定しても「Nullまたはオブジェクトではありません」となってしまう

    Webページ作成にて、セレクトボックスを選択した時に選択内容によって、 同フォーム内にある特定のラジオボタンを無効にする処理を組んでいます。 セレクトボックスの[onChange]イベントに下記の[selectChange()]が 動くように記述しているのですが、どうしても 「Nullまたはオブジェクトではありません」とエラーとなってしまいます。 オブジェクト名のタイプミスなども含め何度も見直しましたが間違いありませんでした。 ちなみに、この関数と同じ場所に、ロールオーバーイメージをプリロード させる関数も記述しているのですがそちらは問題なく動いています。 (DreamWeaverが生成してくれるものですが・・) 原因として何が考えられるでしょうか。 分かる方お力をお貸し下さい。 //特定のラジオボタンを無効にする関数 function selectChange() { var selectedNum = document.FormName.SelectBox.selectedIndex; if(selectedNum == 1) { document.FormName.RadioButton[0].disabled = false; document.FormName.RadioButton[3].disabled = true; document.FormName.RadioButton[4].disabled = true; } else if(selectedNum >= 2){ document.FormName.RadioButton[0].disabled = true; document.FormName.RadioButton[3].disabled = false; document.FormName.RadioButton[4].disabled = false; } } //セレクトボックスの記述 <select name="SelectBox" onchange="selectChange()"> <option value=""></option> <option value=1>1</option> <option value=2>2</option> <option value=3>3</option> </select>

  • セレクトメニュー連動のテキストをクリアにしたい

    下記のサンプルがあります。 <html> <head> <title>form TEST</title> <script> <!-- menuItem = [["-選んで下さい-","いち","に","さん"], ["-選んで下さい-","ひい","ふう","み"], ["-選んで下さい-","もの","じ","とり"]]; function check(){ len = document.form.three.options.length; for (i=0; i<len; i++){ document.form.three.options[i] = null; } n = document.form.one.value; if(n == "1"){document.form.three.style.visibility = "visible"; for (i=0; i<menuItem[0].length; i++){ document.form.three.options[i] = new Option(menuItem[0][i],menuItem[0][i]); } }else if(n == "2"){document.form.three.style.visibility = "visible"; for (i=0; i<menuItem[1].length; i++){ document.form.three.options[i] = new Option(menuItem[1][i],menuItem[1][i]); } }else if(n == "3"){document.form.three.style.visibility = "visible"; for (i=0; i<menuItem[2].length; i++){ document.form.three.options[i] = new Option(menuItem[2][i],menuItem[2][i]); } } } msgtxt = new Array(); for (i=0; i<3; i++){msgtxt[i] = new Array(); } msgtxt[0][0] =" "; msgtxt[0][1] ="あいうえお"; msgtxt[0][2] ="かきくけこ"; msgtxt[0][3] ="さしすせそ"; msgtxt[1][0] =" "; msgtxt[1][1] ="たちつてと"; msgtxt[1][2] ="なにぬねの"; msgtxt[1][3] ="はひふへほ"; msgtxt[2][0] =" "; msgtxt[2][1] ="まみむめも"; msgtxt[2][2] ="やゆよ"; msgtxt[2][3] ="わゐうゑを"; function txtchg(){ x = document.form.two.selectedIndex; y = document.form.three.selectedIndex; document.form.four.value = msgtxt[x][y]; } // --> </script> </head> <body onLoad="check()"> <form name= "form"> Value1 <select name="one" onchange="check()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> Value2 <select name="two" onchange="check()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> Value3 <select name="three" style="visibility:hidden" onchange="txtchg()"> </select> Value4 <textarea name="four" rows="1" cols="10"></textarea> </form> </body> </html> これは、Value1の選択値によってValue3の選択肢を変えて、Value2とValue3の選択値の組み合わせの結果をValue4に記入するという動作のサンプルです。 でもこれですと、Value2とValue3の結果でValue4に記入された後に、Value1やValue2を変更した場合、Value3は初期値に戻るのですが、Value4はそのまま表示されたままになってしまいます。本当はValue3が初期値に戻ったのだから、その場合はValue4をクリアにしたいのですが。 どこをどう修正すればその動作が可能になるのか、ご教示お願い致します。

  • javascriptで連動するセレクトボックス

    ショッピングサイトを構築しており、選択した商品の金額を表示させたいと考えています。 大分類・中分類・小分類の3種類のセレクトボックスを用意し、 選んだ商品1つだけの金額をDIV要素に表示させたいのですが、 思うように動作せず行き詰ってしまいました。 現状は食べ物-果物の、リンゴかオレンジは正しく表示されるのですが、 他のものになるとセレクトボックスがうまく連動しない状況です。 ソースが長くなってしまい、大変申し訳ないのですが、 どうかお知恵を貸してください。お願いいたします。 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>選択した商品のみ金額を表示させる</title> <script type = "text/javascript"> <!-- function listControl() { largeList = document.forms.formName.largeName; middleList = document.forms.formName.middleName; smallList = document.forms.formName.smallName; No = 1; //リストの数が異なる場合 middleList.options.length = 0; smallList.options.length = 0; //中分類の判定 if(largeList.options[largeList.selectedIndex].value == "食べ物"){ middleList.options[0] = new Option("果物","fruit"); middleList.options[1] = new Option("野菜","vegetable"); } else if (largeList.options[largeList.selectedIndex].value == "飲み物"){ middleList.options[0] = new Option("スープ","soup"); middleList.options[1] = new Option("ジュース","juice"); } //小分類の判定 if (middleList.options[middleList.selectedIndex].value == "fruit"){ smallList.options[0] = new Option("果物を選択してください"); smallList.options[1] = new Option("1.リンゴ","apple"); smallList.options[2] = new Option("2.オレンジ","orange"); } else if (middleList.options[middleList.selectedIndex].value == "vegetable"){ smallList.options[0] = new Option("野菜を選択してください"); smallList.options[1] = new Option("3.カボチャ","pumpkin"); smallList.options[2] = new Option("4.イモ","potato"); } else if (middleList.options[middleList.selectedIndex].value == "soup"){ smallList.options[0] = new Option("スープを選択してください"); smallList.options[1] = new Option("5.みそ汁","miso"); } else if (middleList.options[middleList.selectedIndex].value == "juice"){ smallList.options[0] = new Option("ジュースを選択してください"); smallList.options[1] = new Option("6.ミックスジュース","mix"); smallList.options[2] = new Option("7.グレープフルーツ","grapefruit"); smallList.options[3] = new Option("8.トマトジュース","tomato"); } } //div要素を非表示にする function resetBtn(){ for(i=1; i<=8; i++){ document.getElementById("buyList"+[i]).style.display="none"; } } //--> </script> </head> <body> <div class="futoSelectForm"> <form name="formName"> <!--選択肢その1--> <select name = "largeName" onChange="listControl()"> <option value = "">種類を選択してください</option> <option value = "食べ物">食べ物</option> <option value = "飲み物">飲み物</option> </select> <!--選択肢その2(選択肢の項目によって変化)--> <select name = "middleName"> </select> <!--選択肢その3(選択肢の項目によって変化)--> <select name = "smallName" onchange="document.getElementById('buyList'+No).style.display='none';document.getElementById('buyList'+(No=(this.selectedIndex))).style.display='block'"> </select> <input type="button" value="リセット" onclick="resetBtn();"> </form> </div> <div id="buyList0" style="display:none;"></div> <div id="buyList1" style="display:none;">果物:1.リンゴ 120円</div> <div id="buyList2" style="display:none;">果物:2.オレンジ 80円</div> <div id="buyList3" style="display:none;">野菜:3.カボチャ 210円</div> <div id="buyList4" style="display:none;">野菜:4.イモ 40円</div> <div id="buyList5" style="display:none;">スープ:5.みそ汁 50円</div> <div id="buyList6" style="display:none;">ジュース:7.ミックスジュース 180円</div> <div id="buyList7" style="display:none;">ジュース:8.グレープフルーツジュース 150円</div> <div id="buyList8" style="display:none;">ジュース:9.トマトジュース 160円</div> </body> </html>

  • セレクトメニューの連動、そしてページへのリンク

    [セレクトメニューA] > [セレクトメニューB] > [セレクトメニューC] …というような、まずAで選び、それに対応したメニューBのうちのひとつを選び、そして最後にCのうちのひとつを選ぶと、 (たとえば、Cのセレクトメニューには Yahoo Google Excite のようなのがあり、それらを選択すると、) あらかじめ設定しておいた該当するページへ行く、というようなしくみはどのように作ればいいのでしょうか? ネット上を探し回って、自分で組み立てて作ってみましたが、 <!-- menu = [  ["A","B","C","D"],  ["E","F","G"],  ["H"] ]; function setMenu(n) { len = document.myForm.sb.options.length; for (i=len-1; i>=0; i--) { document.myForm.sb.options[i] = null; } for (i=0; i<menu[n].length; i++) { document.myForm.sb.options[i] = new Option(menu[n][i],menu[n][i]); } } menuItem = [  ["Z"],  ["Y","X","W","V"],  ["U","T","S","R"] ]; function setMenuItem(a) { len = document.myForm.s.options.length; for (c=len-1; c>=0; c--) { document.myForm.s.options[c] = null; } for (c=0; c<menuItem[a].length; c++) { document.myForm.s.options[c] = new Option(menuItem[a][c],menuItem[a][c]); } } // --> ───────────────── <form name="myForm"> <select name="a" onchange="setMenu(this.selectedIndex)"> <option checked selected>セレクトA</option> <option value="A">A</option> <option value="E">E</option> <option value="H">H</option> </select> &gt; <select name="sb" onchange="setMenuItem(this.selectedIndex)"> <option selected> </option> </select>&nbsp;&gt; <select name="s" onChange="popJump(this)"> <option selected > </option> </select> </form> …と、3つを連動させるまでにはいたったのですが、最後の、「セレクトCを選んだときに該当ページへジャンプ」というのができません。 このプログラムにどのような修正を加えればよいのでしょうか? よろしくお願いいたします。

  • 親子連動型のselectを設置し、さらにselectedを設定したい。

    以下のソースのように、親子連動型のselectを作成しています。 ですが、特定の値にselectedを設定するところで行き詰っています。 例えば、 dai_komokuのselectedが大項目2で chu_komokuのselectedが中2-3 というようなかたちです。 このような事は可能なのでしょうか? 可能であれば教えていただければ幸いです。 <script type="text/javascript"> <!-- function changelist(){ var num = document.forms["writeform"].dai_komoku.selectedIndex var obj = document.forms["writeform"].chu_komoku.options obj.length = 0 if(num==0){ obj[obj.length]=new Option("----------------",""); } if(num==1){obj[obj.length]=new Option('中1-1','11') obj[obj.length]=new Option('中1-2','12') }else if(num==2){obj[obj.length]=new Option('中2-1','21') obj[obj.length]=new Option('中2-3','23') } if(obj.selectedIndex==-1)obj.selectedIndex=0 if(document.layers){ window.resizeBy(-10,-10) window.resizeBy(10,10) } } //--> </script> <form method="post" action="hoge.php" name="writeform"> 大項目 <select name="dai_komoku" onchange="changelist()"> <option value="" selected>--選択してください--</option> <option value='1'>大項目1</option> <option value='2'>大項目2</option></select> <br> 中項目 <select name="chu_komoku"></select> </form>

  • 連動するセレクトボックスの内容を増やしたい

    お世話になります。 現在JavaScriptで以下のサンプルのような連動セレクトボックスを作っているのですが、親と子のセレクト項目を増やすやり方がわからず困っています。 http://enjoyjob.blog116.fc2.com/blog-entry-221.html サンプルでは親と子のセレクトボックスが3つなのですが、 7つの親と子のセレクトボックスを作りたいと思っています。 JavaScriptのどの部分を変えればいいのかどうかご教授お願いいたします。 <script type="text/javascript"> var parentArray = new Array('東京都','神奈川県','静岡県'); ////親セレクトボックスを配列から書き出し function autoOptions(){ var parent=parentArray.length; var selectNumber = document.getElementsByTagName("select").length; for(var j=0;j<=selectNumber/2-1;j++){ idName='parent_'+j; document.getElementById(idName).length=parent+1; for(var i=0;i<parent;i++){ document.getElementById(idName).options[i+1].text= parentArray[i]; } } } ////連動セレクトボックス function selectBox(n){ var idParent='parent_'+n; var idChild='child_'+n; if(document.getElementById(idParent).selectedIndex==0){ document.getElementById(idChild).length=1; document.getElementById(idChild).selectedIndex=0; } else { document.getElementById(idChild).selectedIndex=0; document.getElementById(idChild).length=1; var child = childArray[document.getElementById(idParent).selectedIndex-1]; document.getElementById(idChild).length=child.length+1; for(var i=0;i < child.length;i++){ document.getElementById(idChild).options[i+1].text= child[i]; } } } ////子セレクトボックスの配列 var childArray = new Array(); childArray[0]=new Array("渋谷区","品川区","港区","新宿区"); childArray[1]=new Array("横浜市","川崎市","厚木市","小田原市"); childArray[2]=new Array("静岡市","浜松市","三島市","焼津市","清水市"); </script>

専門家に質問してみよう