bootstrap multiselect获取选定的值

fef*_*efe 28 jquery multi-select twitter-bootstrap

如何重新启用onChange我的多选下拉列表中的所有选定值.这里使用插件.试着使用以下但我认为我走错了路

$('#multiselect1').multiselect({
        selectAllValue: 'multiselect-all',
        enableCaseInsensitiveFiltering: true,
        enableFiltering: true,
        maxHeight: '300',
        buttonWidth: '235',
        onChange: function(element, checked) {
            var brands = $('#multiselect1 option:selected');
            var selection = [];
            $(brands).each(function(index, brand){
                selection.push(brand);
            });

            console.log(selection);
        }
    });
Run Code Online (Sandbox Code Playgroud)

找到了

$('#multiselect1').multiselect({
    selectAllValue: 'multiselect-all',
    enableCaseInsensitiveFiltering: true,
    enableFiltering: true,
    maxHeight: '300',
    buttonWidth: '235',
    onChange: function(element, checked) {
        var brands = $('#multiselect1 option:selected');
        var selected = [];
        $(brands).each(function(index, brand){
            selected.push([$(this).val()]);
        });

        console.log(selected);
    }
});
Run Code Online (Sandbox Code Playgroud)

fef*_*efe 36

我发现在我的案例中工作的解决方案

$('#multiselect1').multiselect({
    selectAllValue: 'multiselect-all',
    enableCaseInsensitiveFiltering: true,
    enableFiltering: true,
    maxHeight: '300',
    buttonWidth: '235',
    onChange: function(element, checked) {
        var brands = $('#multiselect1 option:selected');
        var selected = [];
        $(brands).each(function(index, brand){
            selected.push([$(this).val()]);
        });

        console.log(selected);
    }
}); 
Run Code Online (Sandbox Code Playgroud)

  • +1 对于解决方案,但是您的 selected.push 语句中出现错误。您正在推送选项值列表而不是作为字符串的值。你想删除封闭的括号。 (2认同)

vl.*_*kov 27

更短的版本:

$('#multiselect1').multiselect({
    ...
    onChange: function() {
        console.log($('#multiselect1').val());
    }
}); 
Run Code Online (Sandbox Code Playgroud)


eag*_*gor 16

由于DOM查找次数较少,效率更高:

$('#multiselect1').multiselect({
    // ...
    onChange: function() {
        var selected = this.$select.val();
        // ...
    }
});
Run Code Online (Sandbox Code Playgroud)


Rav*_*dov 8

$('#multiselect1').on('change', function(){
    var selected = $(this).find("option:selected");
    var arrSelected = [];
    selected.each(function(){
       arrSelected.push($(this).val());
    });
});
Run Code Online (Sandbox Code Playgroud)