我有一个多选,我想知道用户点击了什么选项。我在网上搜索但是没有得到任何体面的答案。我不想要一个所有选定选项的数组,只是用户点击的选项
例如
选项A. 选项B. 选项C
如果会员点击选项A我想获得选项A,如果会员然后选择选项B,我想获得选项B,而不是选项A和B.
我已经看到他们说使用点击事件的答案,但进一步的研究表明,使用多个选项时,点击事件不会触发,我必须在更改时使用。
我之所以需要这个,是因为我们有以下要求
选项A. 选项B. 选项C. 选项无
如果成员选择A,然后选择B,然后选择无,我需要取消选择所有选项,并选择“无”。
如果选择None,并且成员决定选择选项A,则需要取消选择None,并且需要选择选项A.
我能看到实现这一目标的唯一方法是知道该成员点击了哪个选项,如果为None,则取消选择all,然后选择None,否则,确保在选择时取消选择。
答案 0 :(得分:0)
选择当前选项(动态):
$('#myselect').change(function() {
alert($(this).val());
})
选择当前选项(无动态):
$('#myselect option:selected').val();
答案 1 :(得分:0)
这让我想起了谷歌,因为我之前从未搞过多次选择,但这里是我提出的代码,它按照你想要的方式工作。它可能还有改进的余地,但我现在没有时间做这件事。
var arr = [],
index;
$("#mymulti").on('click', 'option', function() {
if ($(this).is(':selected')) {
arr.push($(this).val());
} else {
index = arr.indexOf($(this).val());
if (index > -1) {
arr.splice(index, 1);
}
}
if (arr.length == 0) {
$('#mymulti').val(['None']);
arr.push('None');
} else if (arr[0] === 'None' && arr.length > 1) {
index = arr.indexOf('None');
arr.splice(index, 1);
$('#mymulti option[value="None"]').attr('selected', false);
} else {
$.each(arr, function(index, value) {
if (value === 'None' && index > 0) {
$("#mymulti option").attr('selected', false);
$('#mymulti option[value="None"]').attr('selected', true);
arr = ['None'];
}
});
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mymulti" multiple="multiple">
<option value="1">Option A</option>
<option value="2">Option B</option>
<option value="3">Option C</option>
<option value="None">None</option>
</select>
&#13;
答案 2 :(得分:0)
我使用的多选是silvio moretto的bootstrap-select
出于某种原因,它正在抨击on -click事件。
我去了他的网站,发现了以下事件
$('#myMulti')。on('changed.bs.select',function(evt,clickedIndex){ 第二个参数给了我当前选择的索引,这是我需要的
https://silviomoreto.github.io/bootstrap-select/options/#events
答案 3 :(得分:0)
$("#mymulti").on('change', function(e) {
e.currentTarget.value //should return you the currently selected option
});