下拉值我不想使用javascript显示

时间:2011-12-02 19:06:51

标签: javascript drop-down-menu visibility

我有两个下拉菜单。

1st - >下拉菜单(名称=" DropDown1")有2个值,即ABC和ABCD
第二 - >下拉菜单(名称=" DropDown2")有3个值,分别为1,2和3.

现在我的问题是,在Javascript中,如果用户从DropDown1中选择ABC,那么我怎样才能得到它以便DropDown2仅显示值1和2而不是3,这是因为你不能选择3个答案对于ABC,但如果用户从DropDown1中选择ABCD,则可以在DropDown2中显示值1,2和3.

谢谢

2 个答案:

答案 0 :(得分:1)

我会设置一个键/值对的对象来保存您的选择。然后绑定到DropDown1上的change事件,以便在更改时重写DropDown2的选项。

您的javascript对象看起来像这样......

var DropOne = new Array();

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

如果您将jQuery标记添加到问题中,我很乐意向您展示一些有用的代码。我不能在纯粹的javascript中做到这一点虽然...哎呀:)

好吧......好吧,如果你想要它,那就是jQuery吧......

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

答案 1 :(得分:1)

您必须拥有两个阵列,并且在选择问题时,您必须填写答案选择,示例代码中的选项:

<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>