在没有jQuery的情况下获取多项选择的所有选项

Posted

技术标签:

【中文标题】在没有jQuery的情况下获取多项选择的所有选项【英文标题】:get all the options selected of a multiple select without jQuery 【发布时间】:2014-03-05 11:04:52 【问题描述】:

我想在提交表单时取回多选中的所有选项。

喜欢:

<select id="multipleSelect" multiple="multiple">
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>

使用类似的东西:

var selectedValues = document.getElementbyId('multipleSelect).values;

并获得一个数组,其中包含所有选择的值,例如 ['2','3']

所有这些,没有 jQuery 并且在 js 或 php 中都可以:)

谢谢!

【问题讨论】:

lulz,我知道 :) 我试过 document.getElementbyId('multipleSelect).value,但我只得到 1 个选项(即使我选择了更多)......我用 foreach ($_GET['selectid'] as $selectedOption) 尝试了一些东西,但没有用.. .我只是在jquery中搜索.val()之类的东西,但只在js中...... @Crocsx 服务器端 =/= 客户端 缺少关闭',这里是value getElementbyId('multipleSelect).values; 我知道它的价值 ^^ 但它只返回 1 个选项,所以我写了 s 来说明我正在寻找能够提供价值的东西 【参考方案1】:
var options = document.getElementById('multipleSelect').options,
    result = [];

for (var i = 0, len = options.length; i < len; i++) 
    var opt = options[i];

    if (opt.selected) 
        result.push(opt.value);
    


console.log(result);

演示: http://jsfiddle.net/AH2yK/

【讨论】:

【参考方案2】:

你可以这样试试,

var options = document.getElementById('multipleSelect').options;
var values = [];
var i = 0, len = options.length;

while (i < len)

    if(options[i].selected)
     values.push(options[i].value);        
    
    i++;

alert(values.join(', '));

【讨论】:

以上是关于在没有jQuery的情况下获取多项选择的所有选项的主要内容,如果未能解决你的问题,请参考以下文章

使用选择的 jquery 插件获取每个选择的值

Select2 从过滤列表中选择所有选项以进行多项选择

Jquery 更改功能似乎工作,但没有做任何事情

如何在没有样式化所有其他选项的情况下使用 CSS 样式选择选项?

如何使用 jQuery 获取选择的所有选项?

评估多项选择题的编程技巧