Выпадающие значения, которые я не хочу отображать с помощью JavaScript - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть два выпадающих меню.

1st -> раскрывающееся меню (name = "DropDown1") имеет 2 значения, которые являются ABC и ABCD
2nd -> раскрывающееся меню (name = "DropDown2") имеет 3 значения, равные 1,2 и 3.

Теперь мой вопрос заключается в том, что в Javascript, если пользователь выбирает ABC из DropDown1, как я могу получить его, чтобы DropDown2 отображал только значения 1 и 2, а не 3, это потому, что вы можетевыберите 3 ответа для ABC, но затем сможете показывать значения 1, 2 и 3 в DropDown2, если пользователь выбирает ABCD из DropDown1.

Спасибо

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

У вас должно быть два массива, и при выборе вопроса необходимо заполнить опции в Выбор ответа, Пример кода:

<html>
    <head>
    <title>Question Answer Test</title>
    <script type="text/javascript">
        var dropdown1 = [];
        var dropdown2 = [];

        dropdown1[0] = new Option("1", "1");
        dropdown1[1] = new Option("2", "2");

        dropdown2[0] = new Option("1", "1");
        dropdown2[1] = new Option("2", "2");
        dropdown2[2] = new Option("3", "3");

        function populateAnswer(qusSelectBox, ansSelectBox){
            var tempMenuItem;
            ansSelectBox.options.length = 0;

            switch (qusSelectBox.selectedIndex) {
                case 0:
                    tempMenuItem = dropdown1;
                    break;
                case 1:
                    tempMenuItem = dropdown2;
                    break;
           }

           for (var i = 0; i < tempMenuItem.length; i++) {
                ansSelectBox.options[i] = tempMenuItem[i];
           }
   }

    </script>
    </head>
    <body>
        <form name="Menus">
            <select name="Question" onchange="populateAnswer(this, this.form.Answer);">
                 <option value="ABC">ABC</option>
                 <option value="ABCD">ABCD</option>
            </select> 
            <select name="Answer">
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </form>
    </body>
 </html>
1 голос
/ 02 декабря 2011

Я бы настроил объект пар ключ / значение, которые содержат ваши возможности выбора. Затем привяжите к событию изменения в DropDown1, чтобы переписать параметры DropDown2 при его изменении.

Ваш объект JavaScript будет выглядеть примерно так ...

var DropOne = new Array();

DropOne.ABC = [1, 2];
DropOne.ABCD = [1, 2, 3];

Если вы добавите тег jQuery к вопросу, я с радостью покажу вам некоторый рабочий код. Я не мог сделать это в чистом javascript от макушки головы, хотя ... упс:)

Хорошо ... ну, вот с jQuery, если хотите ...

http://jsfiddle.net/brettzink/pND9u/

...