0

我有一个多选下拉菜单,当用户选择单个项目或按 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并选择更多项目时。

4

2 回答 2

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();
    });
}

小提琴

于 2013-08-11T04:32:42.613 回答
0

尝试

var selectValues = new Array();
$('#ddlBProduct').change(function () {
    selectValues = $(this).val();
    MyFunction();
});

function MyFunction(){
    $.each(selectValues, function(idx, val){
        console.log('value: ', val)
    })
}

演示:小提琴

于 2013-08-11T04:47:55.880 回答