简体   繁体   English

使用Javascript根据另一个选择的值更改一个选择

[英]Change one select based on the value of another with Javascript

I need one <select> dropdown to change based on another. 我需要一个<select>下拉列表来更改另一个。 Here is what I have so far, which is not working. 这是我到目前为止所没有的。

HTML 的HTML

<html>
<head>
...
</head>
<body>      
    <form>
        <table>
            <tr>
                <td>Dropdown Menu 1</td>
                <td>Dropdown Menu 2</td>
            </tr>
            <tr>
                <td>
                    <select id="ddl1" onchange="changeDropdown(this,document.getElementById('ddl2'))">
                        <option value=""><!---------></option>
                        <option value="Colors">Colors</option>
                        <option value="Shapes">Shapes</option>
                        <option value="Sounds">Sounds</option>
                    </select>
                </td>
                <td>
                    <select id="ddl2">
                    </select>
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

Javascript Java脚本

<script>
    function changeDropdown(ddl1,ddl2) {
        var colors = new Array('Black', 'Brown', 'Blue');
        var shapes = new Array('Triangle', 'Square', 'Circle');
        var sounds = new Array('Loud', 'Soft');

        switch (ddl1.value) {
            case 'Colors':
                for (i = 0; i < colors.length; i++) {
                    createOptions(ddl2, colors[i], colors[i]);
                }
                break;
            default:
                ddl2.options.length = 0;
                break;
        }
    }
    function createOptions(ddl,text,value) {
        var opt = document.createElement('option');
        opt.value = value;
        opt.text = text;
        ddl.option.add(opt);
    }
</script>

This needs to be in Javascript. 这需要使用Javascript。 I know that people usually advice jQuery for stuff like this, but this needs to be Javascript. 我知道人们通常会建议jQuery这样的东西,但这必须是Javascript。

What am I doing wrong? 我究竟做错了什么?

Thanks in advance! 提前致谢!

-Anthony 安东尼

This works: 这有效:

function createOptions(ddl,text,value) {
    var opt = document.createElement('option');
    opt.setAttribute("value", value);
    opt.innerHTML=text;
    ddl.appendChild(opt);
}

Instead of: 代替:

opt.option.add(opt);

Do: 做:

ddl.appendChild(opt);
 opt.option.add(opt);

好像您要向自身添加选项。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM