【问题标题】:Bootstrap multi select : Flag to check all options are selected or notBootstrap 多选:检查所有选项是否被选中的标志
【发布时间】:2019-02-14 20:37:18
【问题描述】:

我正在使用引导多选插件来启用选择控件和多选的过滤。 我必须根据所选值加载另一个下拉列表,并且我使用了

onDropdownHide

做同样事情的事件

代码如下所示

$("#@param_name").multiselect({
    enableCaseInsensitiveFiltering: true,
    includeSelectAllOption: true,
    includeResetOption: true,
    includeResetDivider: true,
    resetText: "Reset all",
    selectAllValue: 'select-all-value',
    onDropdownHide: function (event) {                                              
        var allselected= ?????;   
        callTargetDropDownLoad(allselected);
    }
});

并且基于 allselected 变量,我必须编写一些自定义逻辑。但我没有看到任何方法来识别所有值是否在下拉列表中被选中并将其分配给

 allselected variable

【问题讨论】:

    标签: jquery bootstrap-multiselect


    【解决方案1】:

    您可以使用经典的:selected 选择器:

    $('#\\@param_name option:selected')  // get all selected options
    

    如果您需要检查是否选择了所有选项,则可以使用:

    this.$ul.find('li.multiselect-all').is('.active');  // check if the selectall is selected
    

    $("#\\@param_name").multiselect({
        enableCaseInsensitiveFiltering: true,
        includeSelectAllOption: true,
        includeResetOption: true,
        includeResetDivider: true,
        resetText: "Reset all",
        selectAllValue: 'select-all-value',
        onDropdownHide: function (event) {
            var isMultiSelected = this.$ul.find('li.multiselect-all').is('.active');
    console.log('multiselect ---> ' + isMultiSelected );
            var allselected= $('#\\@param_name option:selected');
            allselected.each((a,b) => console.log(b.textContent));
            callTargetDropDownLoad(allselected);
        }
    });
    
    function callTargetDropDownLoad(a) {
    }
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/js/bootstrap-multiselect.min.js"></script>
    
    
    <select id="@param_name" multiple="multiple">
        <option value="cheese">Cheese</option>
        <option value="tomatoes">Tomatoes</option>
        <option value="mozarella">Mozzarella</option>
        <option value="mushrooms">Mushrooms</option>
        <option value="pepperoni">Pepperoni</option>
        <option value="onions">Onions</option>
    </select>

    【讨论】:

    • selectAllValue对这个有影响吗
    • 从插件属性中,我们将获得一个名为 selectAllValue 的附加属性或设置。我找不到这个的重要性
    • 是的,代码 var isMultiSelected = this.$ul.find('li.multiselect-all').is('.active');将返回真或假。但不确定代码行 var allselected= $('#\\@param_name option:selected');
    • 第一行(在我的回答中)返回所有选定的选项,而如果选中了多选,则第二行返回。
    猜你喜欢
    • 1970-01-01
    • 2021-08-19
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2014-07-02
    • 2021-07-16
    相关资源
    最近更新 更多