ふたつのセレクトメニューの項目を外部ファイルから読み込ませて連動させたい。
上のセレクトメニューから県名を選ぶと、下のセレクトメニューの項目が市区町村の項目になるようにセレクトメニューを連動させたいです。
また、そのときのセレクトメニューの項目を外部ファイルから読み込ませたいのですがエラーが出てしまいます。。。
htmlには、
<html>
<head>
<title>あ</title>
<script type="text/javascript">
<!--
// -->
</script>
<script type="text/javascript">
<!--
window.onload=function (){
for(var i=0; i<data.length; i++){
document.FORM1.MENUA.options[i] = new Option(data[i][0],data[i][0]);
}
setSubMenu(0);
};
function setSubMenu(no){
document.FORM1.MENUB.length=0;
for(var i=1; i<data[no].length; i++){
document.FORM1.MENUB.options[i-1] = new Option(data[no][i].key,data[no][i].value);
}
}
// -->
</script>
</head>
<body>
<form name="FORM1">
<select name="MENUA" onchange="setSubMenu(this.selectedIndex)">
</select>
<br>
<select name="MENUB" >
</select>
</form>
</body>
</html>
外部ファイルに
data = [
// [メイン分類,サブ分類並び,…],
["北海道",
{key:"函館市",value:02_11},
{key:"小樽市",value:02_12},
{key:"旭川市",value:02_13},
{key:"その他市町村",value:02_099}],
["青森",
{key:"青森市",value:03_01},
{key:"弘前市",value:03_02},
{key:"八戸市",value:03_03},
{key:"鳥取",value:213}],
{key:"その他市町村",value:03_099}],
["岩手県",
{key:"盛岡市 ",value:04_01},
{key:"宮古市",value:04_02},
{key:"大船渡市",value:04_03},
{key:"その他市町村",value:04_099}],
["宮城県",
{key:"石巻市",value:05_06},
{key:"塩竈市",value:05_07},
{key:"古川市",value:05_08},
{key:"その他市町村",value:05_099}],
];
と書きましたがjavascript初心者でどこに間違いがあるのか解りません・・
すみませんがご教授のほどよろしくお願いいたします。
回答(1件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.1ベストアンサー20pt
valueの値がエラーの原因だったようです。
""で挟んで文字列にしましょう。
修正例:
var data = [
// [メイン分類,サブ分類並び,…],
["北海道",
{key:"函館市",value:"02_11"},
{key:"小樽市",value:"02_12"},
{key:"旭川市",value:"02_13"},
{key:"その他市町村",value:"02_099"}],
["青森",
{key:"青森市",value:"03_01"},
{key:"弘前市",value:"03_02"},
{key:"八戸市",value:"03_03"},
{key:"鳥取",value:"213"},// ここにあった余分な大括弧閉じる(])を消去
{key:"その他市町村",value:"03_099"}],
["岩手県",
{key:"盛岡市 ",value:"04_01"},
{key:"宮古市",value:"04_02"},
{key:"大船渡市",value:"04_03"},
{key:"その他市町村",value:"04_099"}],
["宮城県",
{key:"石巻市",value:"05_06"},
{key:"塩竈市",value:"05_07"},
{key:"古川市",value:"05_08"},
{key:"その他市町村",value:"05_099"}]
];
この回答へのお礼
ESateさま、お返事ありがとうございます。
ESateさまのご指摘があった箇所
>""で挟んで文字列にしましょう。
>ここにあった余分な大括弧閉じる(])を消去
を修正しましたところ無事解決する事ができました。
ほんとうにありがとうございました。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示












