我有一个多选下拉列表,当用户选择单个项目或按ctrl或shift时,我想捕获这些项目并将它们存储在一个数组中,然后在数组中获取每个值并执行其他一些操作它。我完成了第一部分:
var selectValues = new Array();
$('#ddlBProduct').change(function () {
selectValues = [];
selectValues.push($(this).val());
MyFunction();
});
function MyFunction(){
$.each(selectValues, function () {
var theitem = $('#' + this).html();
});
}
在该函数中没有MyFunction由于某种原因我将所有值都保持为1值而不是每个人。我假设的是,数组中的“单个”值实际上是所有选定选项的列表,而不是将它们分离到数组中。帮助
编辑:删除
selectValues = [];
结果如下:
["81"]
["81"]
["81", "102"]
["81"]
["81", "102"]
["81", "102", "30"]
那就是选择一个选项并按下shift并选择更多项目。
答案 0 :(得分:0)
试试这个:
$('select').change(function () {
var selected_options = $(this).parent().find('option:selected');
myFunction($.map(selected_options, function (selected_option) { return selected_option.value; }));
});
function myFunction(selectValues){
console.log(selectValues)
$.each(selectValues, function () {
var theitem = $('#' + this).html();
});
}
答案 1 :(得分:0)
尝试
var selectValues = new Array();
$('#ddlBProduct').change(function () {
selectValues = $(this).val();
MyFunction();
});
function MyFunction(){
$.each(selectValues, function(idx, val){
console.log('value: ', val)
})
}
演示:Fiddle