【问题标题】:get all the options selected of a multiple select without jQuery在没有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 来说明我正在寻找能够提供价值的东西

标签: javascript


【解决方案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(', '));
    

    【讨论】:

      猜你喜欢
      • 2015-07-18
      • 2016-09-07
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 2015-12-17
      相关资源
      最近更新 更多