如何使用jQuery填充bootstrap multi select

时间:2018-06-10 15:32:46

标签: jquery ajax

我正在使用两个多选下拉列表。第二个多选项取决于第一个多选值。

当第一个下拉列表(#participation_channels)选项被选中或取消选择时,我正在尝试使用ajax调用填充第二个多选(#field_zone)选项。我正在尝试填充第二个多选下拉列表(#field_zone),但第二个下拉列表不会填充

plugin used

 $(document).ready(function () {
    $('#participation_channels').multiselect({
        onChange: function (option, checked) {
            var channels = $('#participation_channels').val();
            $.ajax({
                url: "url",
                data: {channels: channels},
                type: "POST",
                dataType:'json',
                cache: false,
                success: function (data) {
                    $.each(data, function(i, zone) {
                        $("#field_zone").append('<option value="' + zone.zone + '">' + zone.zone + '</option>');
                    });
                    $("#field_zone").attr('multiple', 'multiple'); 
                   $("#field_zone").multiselect(); 
                }
            });
        }
    });
    $('#field_zone').multiselect();
}); 

1 个答案:

答案 0 :(得分:2)

您需要强制multiselect重新生成原始 export function poll(fn: Function, every: number): number { let pollId = 0; const pollRecursive = async () => { try { await fn(); } catch (e) { console.error('Polling was interrupted due to the error', e); return; } pollId = window.setTimeout(() => { pollRecursive(); }, every); }; pollRecursive(); return pollId; } 元素中的所有选项。因此,在为select创建新选项后(在select回调内),您应该更改:

success

为:

$("#field_zone").multiselect();

因此将根据更新的选项重建多选项。