获取多个允许选择的值

时间:2014-11-13 05:18:01

标签: jquery forms select

HTML:

<select multiple="" name="selectinputmultiple" id="">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

jQuery的:

$('select[name=selectinputmultiple]').on('change', function() {
    console.log(this.value);
});

控制台只显示第一个选定的值,我想在每次更改时保存数组中的值。例如:

  • 如果用户选择了12 =&gt; {1,2}
  • 然后,用户取消选中1并选择3 =&gt; {2,3}

5 个答案:

答案 0 :(得分:2)

使用 map()获取数组中所有选定的值

$('select[name=selectinputmultiple]').on('change', function () {  
    var val=$('select[name=selectinputmultiple] option:selected').map(function () {
            return this.value;
    }).get();
    console.log(val)
});

DEMO

答案 1 :(得分:1)

您可以使用应该提供数组的.val()

$('select[name=selectinputmultiple]').on('change', function() {
  $('#log').html(JSON.stringify($(this).val()))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select multiple="" name="selectinputmultiple" id="">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>
<div id="log"></div>

答案 2 :(得分:1)

根据 .val() doc

  

对于select元素,当没有选择任何选项时返回null,并且当存在至少一个选项时,它返回包含每个所选选项的值的数组,并且由于存在multiple属性,因此可以选择更多。

您可以简单地使用:

var values = $('[name="selectinputmultiple"]').val();

答案 3 :(得分:-1)

这应该有效,

&#13;
&#13;
 $('select[name=selectinputmultiple]').on('change', function() {
   $('select[name=selectinputmultiple]').each(function() {
     console.log($(this).val());
     alert($(this).val());
   });
 });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select multiple="" name="selectinputmultiple" id="">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>
&#13;
&#13;
&#13;

答案 4 :(得分:-1)

试试这个:

<select multiple="" name="selectinputmultiple" id="">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

$('select[name=selectinputmultiple]').on('change', function() {
    $('select[name=selectinputmultiple]').each(function() {
       console.log($(this).val());
     });  
});

看看这个JSFiddle