連動するセレクトボックスのサンプルです。
サンプルソース
例)都府県を選択すると、市区の選択肢が変わるセレクトボックス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
//都府県の選択肢 var arr = [ {cd:"", label:"▼都府県選択"}, {cd:"13", label:"東京都"}, {cd:"23", label:"愛知県"}, {cd:"27", label:"大阪府"} ]; //市区の選択肢 var arrTokyo = [ {cd:"", label:"▼区選択"}, {cd:"1", label:"新宿区"}, {cd:"2", label:"千代田区"}, {cd:"3", label:"中央区"} ]; var arrAichi = [ {cd:"", label:"▼市選択"}, {cd:"1", label:"名古屋市"}, {cd:"2", label:"豊橋市"}, {cd:"3", label:"岡崎市"}, {cd:"4", label:"豊田市"}, {cd:"5", label:"一宮市"} ]; var arrOsaka = [ {cd:"", label:"▼市選択"}, {cd:"1", label:"大阪市"}, {cd:"2", label:"堺市"}, {cd:"3", label:"東大阪市"}, {cd:"4", label:"枚方市"}, {cd:"5", label:"豊中市"}, {cd:"6", label:"吹田市"}, {cd:"7", label:"高槻市"} ]; //都府県コンボの生成 window.onload=function(){ for(var i=0;i<arr.length;i++){ let op = document.createElement("option"); op.value = arr[i].cd; op.text = arr[i].label; document.getElementById("selPref").appendChild(op); } } //都府県が選択された時に呼び出される処理 function selPref(obj){ var targetArr; if(obj.value == "13"){ targetArr = arrTokyo; }else if(obj.value == "23"){ targetArr = arrAichi; }else if(obj.value == "27"){ targetArr = arrOsaka; }else{ targetArr = new Array(); } var selObj = document.getElementById('selCity'); while(selObj.lastChild){ selObj.removeChild(selObj.lastChild); } for(var i=0;i<targetArr.length;i++){ let op = document.createElement("option"); op.value = targetArr[i].cd; op.text = targetArr[i].label; selObj.appendChild(op); } } |
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Sample</title> <script src="sample.js"></script> </head> <body> <select id="selPref" onchange="selPref(this);"></select> <select id="selCity"></select> </body> </html> |
実行サンプル
都府県を選択すると、市区のコンボボックスの選択肢が変わります。
解説
- onchangeイベントで、市区コンボボックスの要素を変更しています。
[…] [JavaScript] 連動するセレクトボックス […]
selectです。コード一箇所間違えていました。
スペルミス修正しました。
ありがとうございます!