javascript - 如何检索下拉列表中的数组值列表

标签 javascript html

我想填充下拉列表中的值列表。

这是我尝试过的代码,但我不知道如何继续处理数组值列表。请提出建议,以便我能够完成我的任务。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function populate_dropdown(country)
{
    switch(country)
    {
        case "america":
            document.forms[0].states.length = 2;
            document.forms[0].states.disabled = false;
            document.forms[0].states.options[0].text = 'Washington';
            document.forms[0].states.options[0].value = 'Washington';
            document.forms[0].states.options[1].text = 'Florida';
            document.forms[0].states.options[1].value = 'Florida';

            break;
        case "india":
            document.forms[0].states.length = 2;
            document.forms[0].states.disabled = false;
            document.forms[0].states.options[0].text = 'Orissa';
            document.forms[0].states.options[0].value = 'Orissa';
            document.forms[0].states.options[1].text = 'Punjab';
            document.forms[0].states.options[1].value = 'Punjab';
            break;
        default:
            document.forms[0].states.length = 1;
            document.forms[0].states.options[0].text = 'Select a country first';
            document.forms[0].states.disabled = true;
    }
}
</script>

</head>
<body>
<form action="this.html" method="post">
<p>
<input id="America" type="radio" name="country" value="America" onclick="populate_dropdown('america')" /><label for="America">America</label><br />
<input id="India" type="radio" name="country" value="India" onclick="populate_dropdown('india')" /><label for="India">India</label><br />

<select disabled="disabled" name="states">
<option>Select a country first</option>
</select>
</p>
</form>
</body>
</html>

最佳答案

你想要这样的东西吗?

states = {
    "america": [
        { "text": "Washington", "value": "Washington" },
        { "text": "Florida", "value":  "Florida" },
    ],
    "india": [
        { "text": "Orissa", "value": "Orissa" },
        { "text": "Punjab", "value": "Punjab" },
    ],
};

function populate_dropdown(country) {
    if(!states[country]) {
        document.forms[0].states.options = [];
        document.forms[0].states.disabled = true;
        return;
    }
    
    document.forms[0].states.options.length = 0;
    for(var i = 0; i < states[country].length; i++) {
        var state = states[country][i];
        document.forms[0].states.options[i] = new Option(state.text, state.value, false, false);
    }
    document.forms[0].states.disabled = false;
}
<form action="this.html" method="post">
    <p>
        <input id="America" type="radio" name="country" value="America" onclick="populate_dropdown('america')" />
        <label for="America">America</label>
        <br />
        <input id="India" type="radio" name="country" value="India" onclick="populate_dropdown('india')" />
        <label for="India">India</label>
        <br />
        <select disabled="disabled" name="states">
            <option>Select a country first</option>
        </select>
    </p>
</form>

关于javascript - 如何检索下拉列表中的数组值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31316002/

相关文章:

javascript - 用户上传后隐藏上传图片按钮

javascript - 使用 JavaScript 的下一个和后退按钮

javascript - 如何使用 lodash 对数字字符串字段进行排序

javascript - 删除由 iframe 小部件提供支持 - 不显示且 css 不起作用

javascript - Jquery - 如何从 div 标签复制选定的文本?

javascript - 将必需添加到 Angular 指令

javascript - array.map 在reactjs 中不起作用

javascript - HTML如何将&lt;input type ="number">的值设置为无穷大

javascript - 向每一行添加一个新列,其中的文本相当于第一列值?

java - <h :inputText> enabled/disabled - change background color