プロが教える店舗&オフィスのセキュリティ対策術

お世話様です。
まったくの初心者です。


function todofukenSet(){

//オプションタグを連続して書き換える
for ( i=1; i<74; i++ ){

//選択した都道府県によって分岐
switch (document.selbox.todofuken.selectedIndex){
case 0: document.selbox.kuchoson.options[i].text="";break;
case 1: document.selbox.kuchoson.options[i].text=tokyo_todofuken[i];break;
case 2: document.selbox.kuchoson.options[i].text=kanagawa_todofuken[i];break;
case 3: document.selbox.kuchoson.options[i].text=chiba_todofuken[i];break;
case 4: document.selbox.kuchoson.options[i].text=saitama_todofuken[i];break;
case 5: document.selbox.kuchoson.options[i].text=ibaraki_todofuken[i];break;
case 6: document.selbox.kuchoson.options[i].text=tochigi_todofuken[i];break;
case 7: document.selbox.kuchoson.options[i].text=gunnma_todofuken[i];break;
case 8: document.selbox.kuchoson.options[i].text=yamanashi_todofuken[i];break;
case 9: document.selbox.kuchoson.options[i].text=nagano_todofuken[i];break;
case 10: document.selbox.kuchoson.options[i].text=shizuoka_todofuken[i];break;

}
}


抜粋になってしまいますが、
以上の文で、フォームにある<select>の<option>項目を、複数の配列へ分岐させて表示しています。
ですが、配列の項目数が違うため、74より少ない項目に関しては、
「undefined」と表示されてしまいます。
i<74;
の部分を、「配列ごとの数を読みとって、その数ごとに表示」
という指示にするには、どのように記述すれば良いでしょうか。
ご教授ください。
何卒よろしくおねがいいたします。

A 回答 (1件)

動作確認していませんが、この記述でいかがですか



function todofukenSet(){

var pref = document.selbox.todofuken.selectedIndex;
var opts = document.selbox.kuchoson.options;

var citiesList = [
[], // 後の処理を簡単にするためのダミー情報
tokyo_todofuken,
kanagawa_todofuken,
chiba_todofuken,
/*以下略*/
];

var cities = citiesList[pref];
for (var i=0; i<cities.length; i++) opts[i].text = cities[i];
for (var i=cities.length; i<74; i++) opts[i].text = "";

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

おお。
ありがとうございます!undifinedが消えました!
さっそくのご回答、ありがとうございます!
たすかりました!

お礼日時:2013/04/26 18:55

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