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);
});
控制台只显示第一个选定的值,我想在每次更改时保存数组中的值。例如:
1
和2
=&gt; {1,2} 1
并选择3
=&gt; {2,3} 答案 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)
});
答案 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)
这应该有效,
$('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;
答案 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