我正在使用两个多选下拉列表。第二个多选项取决于第一个多选值。
当第一个下拉列表(#participation_channels)选项被选中或取消选择时,我正在尝试使用ajax调用填充第二个多选(#field_zone)选项。我正在尝试填充第二个多选下拉列表(#field_zone),但第二个下拉列表不会填充
$(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();
});
答案 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();
因此将根据更新的选项重建多选项。