【问题标题】:Select2 appending and removing option groups and optionsSelect2 附加和删除选项组和选项
【发布时间】:2020-03-31 14:41:42
【问题描述】:

我正在尝试创建一个带有选项组和选项的动态 select2 下拉菜单。选项组中需要有动态数量的选项。

我遇到的问题是如何删除一个选项组及其所有选项,重新附加具有相同标签和 id 的相同选项组,但现在在 jquery 中使用不同的选项。

This is the function i call on every change, when the option group's options are supposed to get changed:

function EmptyDropDowns() {
    $("[id$=ddlOfficeAccount] optgroup").remove();
    $("[id$=ddlOfficeAccount]").append('<optgroup id="Offices" label="Offices"></optgroup>');
    $("[id$=Offices]").append($("<option></option>").text("- All Offices -").val("0"));
}

然后,用其他选项填充组选项:

 if (Offices.length > 0) {
        for (var i in result.Offices) {
            $("[id$=Offices]").append($("<option></option>").text(result.Offices[i]).val(result.Offices[i]));
        }
    }

这仅在第一次有效,创建一个带有选项组办公室的 Select2 下拉列表,并相应地在其中创建 X 个办公室。但是当需要重新加载时,这段代码:

 $("[id$=ddlOfficeAccount] optgroup").remove();
 $("[id$=ddlOfficeAccount]").append('<optgroup id="Offices" label="Offices"></optgroup>');

重新附加相同的选项组,即使它实际上不再存在于 DOM 中。

在重新附加之前是否可以清除 $("[id$=Offices]") ?我需要它是相同的元素(相同的 id),因为我稍后将组选项检查为所选选项的父项。

【问题讨论】:

    标签: jquery jquery-select2 dropdown options


    【解决方案1】:

    您必须明确销毁 select2 元素,然后重新注册它。 $('#mySelect2').select2('destroy');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      相关资源
      最近更新 更多