我有一组bootstrap-multiselects。如何保持他们的“全选”选项不会发生冲突

时间:2016-04-21 00:20:03

标签: jquery bootstrap-multiselect

我有一组bootstrap-multiselects:

<div id="filter-div" class="text-center">
    <select id="set" class="multiselect" multiple="multiple"></select>
    <select id="subject" class="multiselect" multiple="multiple"></select>
    <select id="demographic" class="multiselect" multiple="multiple"></select>
    <select id="grade" class="multiselect" multiple="multiple"></select>
</div>

然后,我启用它们:

    $('#filter-div select').multiselect({
            includeSelectAllOption: true,
            selectAllValue: 'select-all-value'
    })

然后出现问题:如果我点击其中一个上的“全选”,其他多选的“全选”复选框也会被选中(不是所有选项,只选择全部选项)。

似乎我必须为每一个分配“select-all-value”。有一个简单的方法吗?无论是在bootstrap-multiselect方面还是在jQuery方面。

2 个答案:

答案 0 :(得分:1)

看起来当您单击“全选”时,插件会使用selectAllValue切换所有输入,而不是仅在该选择内输入。除非他们改变他们的代码,除了解决它之外没有什么可以做的。

可能的解决方法是只为每个selectAllValue添加唯一编号。

$('#filter-div select').each(function(index, value) {
    $(this).multiselect({
        includeSelectAllOption: true,
        selectAllValue: 'select-all-value-' + index
    });
});

JSFiddle

答案 1 :(得分:1)

这是一个已经纠正的错误,但它在GitHub上的拉取请求更正尚未合并到主控。 解决方案只改变了js文件中的两行代码: https://github.com/davidstutz/bootstrap-multiselect/pull/753/files