0

以前に選択したオプションの値に基づいて選択オプションを設定したい。

            <label for="state" class="block">State:*</label>
            <select name="state" id="state" tabindex="1">
                <option value="Arizona">Arizona</option>
                <option value="Arkansas">Arkansas</option>
                <option value="Colorado">Colorado</option>
            </select>

            <label for="location" class="block">Preferred Location:*</label>
            <select name="location" id="location" tabindex="2">
                <option value=""></option>
            </select>

それは私のhtmlです。今、私は自分の js を持っていますが、それは動作しますが、ペッターの方法があるかどうか疑問に思っています。

        var State = $('#state').val();
        var Location = $('#location');



        setOptions(State);

        function setOptions(chosen){

        var Location=document.myform.location;
        Location.options.length=0;

        var Arizona = {
        0 : 'Select Location',
        3 : 'Phoenix (Chandler)',
        4 : 'Scottsdale',
        5 : 'Tuscon'
        };

        var Arkansas = {
        2 : 'Little Rock'
        };          

        var Colorado = {
        6 : 'Colorado Springs'
        };




        if(chosen=="Arizona"){              
        var myobject = Arizona;
        }

        if(chosen=="Arkansas"){
        var myobject = Arkansas;
        }

        if(chosen=="Colorado"){         
        var myobject = Colorado;
        }

        for(index in myobject) {
                Location.options[Location.options.length]=new Option(myobject[index], index);
        }

他の選択ボックスに基づいて、どのオブジェクトを使用するかを伝える方法はありますか?

ありがとう!

4

1 に答える 1

0

ネストされたオブジェクトを使用する:

var locations = {
    Arizona: {
        0 : 'Select Location',
        3 : 'Phoenix (Chandler)',
        4 : 'Scottsdale',
        5 : 'Tuscon'
    },
    Arkansas: {
        2 : 'Little Rock'
    },
    Colorado: {
        6 : 'Colorado Springs'
    }
};

var myobject = locations[chosen];
for(index in myobject) {
    Location.options.push(new Option(myobject[index], index));
}
于 2013-04-08T18:28:55.820 に答える