bootstrap-multiselect rebuild / refresh无法正常工作

问题描述 投票:2回答:1

我有2个bootstrap-multiselect盒子。我想根据通过Ajax调用在另一个中所做的选择来刷新一个项目。

除了多重选择用于显示选项之外,所有工作都不会被“重建”或“刷新”填充。

码:

声明多选“

        $('#Groups').multiselect({
        onChange: function (option, checked) {
            //get all of the selected tiems
            var values = $('#Groups option:selected');
            var selected = "";
            $(values).each(function (index, value) {
                selected += $(value).prop('value') + ",";
            });
            selected = selected.substring(0, selected.length - 1);
            //update hidden field with comma delimited string for state persistance
            $("#Hidden_Groups").val(selected);
        },
        includeSelectAllOption: true
    });

更新选项列表:

$('#JobCodes').multiselect({
        onDropdownHide: function(event) {
            console.log("start");
            var option = $("#Groups");
            //clear out old consolidations
            option.empty();
            console.log("emptied");

            ////get consolidation and append to select options list
            $.getJSON("/Reports/GetGroups/", { options: $("#Hidden_JobCodes").val() }, function (result) {
                $.each(result, function (index, item) {
                    console.log(item.text);
                    option.append($("<option />").val(item.id).text(item.text));
                });
            });

            option.multiselect('destroy');
            option.multiselect('rebuild');
            option.multiselect('refresh');
        },

作为一个例子我已经尝试过离开破坏,重建和刷新。在每个订单和组合中使用了所有这些并且没有运气。

Destroy会将我的multiselect“更改”回标准选择,但无论我做什么之后我都无法通过新的选项列表返回多选项,包括使用onchange事件存在时的完整多选调用。它要么空了又有旧列表。当我进行刷新/重建调用时,选择列表具有正确的选项。

提前致谢。 Ť

bootstrap-multiselect
1个回答
0
投票

完全是我的错!!

对/ destroy / refresh / rebuild的调用超出了ajax调用。所以在我的新列表被返回之前执行,因此当时没有要重建的列表。

解:

 ////get consolidation and append to select options list
            $.getJSON("/Reports/GetGroups/", { options: $("#Hidden_JobCodes").val() }, function (result) {
                $.each(result, function (index, item) {
                    console.log(item.text);
                    option.append($("<option />").val(item.id).text(item.text));
                });
                option.multiselect('rebuild')
            });
© www.soinside.com 2019 - 2024. All rights reserved.