无法将带有multiple ='yes'的<select>导出到js </select>

时间:2014-03-30 00:37:02

标签: javascript html

我有这个HTML:

<form name='formName'>
    <select name='selectName' size='3' multiple='yes'>
        <option value='1'>Option 1</option>
        <option value='2'>Option 2</option>
        <option value='3'>Option 3</option>
    </select>
    </br>
    <input type='submit' value='Go!' onclick='getSelect()'></input>
</form>

我想在JavaScript 中检索选定的值(不使用像jQuery这样的框架)

我目前的JavaScript是:

function getSelect() {
    var UserSelect1 = document.formName.selectName.value;
    alert(UserSelect1);
}

但它似乎不起作用。只选择一个选项,它可以正常工作,但如果选择了多个选项,它只返回最高选项。如何检索所有选定的选项?

谢谢!

2 个答案:

答案 0 :(得分:1)

而不是访问value,而这似乎只返回所选的第一个项目,而是可以反复遍历选项并检查它们是否被选中。如果选择了该项,请将其索引添加到数组中。因此,请将getSelect()更改为以下内容:

function getSelect() {
    var selectedItems = [];

    for (var i = 0; i < document.formName.selectName.length; i++){
        if (document.formName.selectName[i].selected){
            selectedItems.push(i);
        }
    }

    alert(selectedItems);
}

这里是JSFiddle,因此您可以尝试修改后的代码。

希望这有帮助!如果您有任何问题,请告诉我。

答案 1 :(得分:0)

更改此行:

<select name='selectName' size='3' multiple='yes'>

<select name='selectName[]' size='3' multiple>