下拉值我不想使用javascript显示



我有两个下拉菜单。

1 ->下拉菜单(name="DropDown1")有两个值,分别是ABC和ABCD
2nd ->下拉菜单(name="DropDown2")有3个值,分别是1、2和3。

现在我的问题是,在Javascript中,如果用户从DropDown1中选择ABC,那么我如何才能使DropDown2只显示值1和2,而不是3,这是因为你不能为ABC选择3个答案,但如果用户从DropDown1中选择ABCD,那么就能够在DropDown2中显示值1,2和3。

谢谢

我将设置一个键/值对的对象来保存您的选择可能性。然后绑定到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/

你必须有两个数组,在选择问题时,你必须在答案选择中填充选项,示例代码:

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

最新更新