JQuery Select2 - 重新初始化数据无效
JQuery Select2 - Re initialization with data not working
我正在尝试替换通过剃刀加载页面时填充的数据。我有三个 select2 组合框,区域、客户和问题。区域过滤客户。我在这些组合框上使用 jquery select2 插件。我在 documet.ready 上实例化它们。默认情况下,客户端仅显示所有客户端。 DropDowns.Clients 是一个包含下拉数据的通用列表。
$("#selectRegion").select2({
placeholder: "Filter By Region",
allowClear: true,
width: '100%'
}).on("change", function (e) {
debugger;
var data = [];
var regionID = $(this).val();
$.each(DropDowns.Clients, function (idx, item) {
if (item.regionID == regionID)
data.push({ "id": item.clientID, "text": item.Name });
})
$("#selectClient").select2({
data: data
});
debugger;
});
$("#selectClient").select2({
placeholder: "Filter By Client",
allowClear: true,
width: '100%'
}).on("change", function (e) {
});
当我更改复选框并且数据数组填充了正确的数据时,该函数会触发,但如果我随后设置数据属性,则没有任何变化。我已经通读了 Stack Overflow 上的当前解决方案,但到目前为止 none 它们已经奏效,所以我认为第二双眼睛可能会起作用。我正在使用 v4 select2 我应该考虑回到 2 吗?任何帮助将不胜感激。
我设法解决了以下问题。
//Clear List
$("#selectIssue").select2().empty()
$("#selectIssue").select2({
data: data,
placeholder: "Filter By Issue",
allowClear: true,
width: '100%'
})
我正在尝试替换通过剃刀加载页面时填充的数据。我有三个 select2 组合框,区域、客户和问题。区域过滤客户。我在这些组合框上使用 jquery select2 插件。我在 documet.ready 上实例化它们。默认情况下,客户端仅显示所有客户端。 DropDowns.Clients 是一个包含下拉数据的通用列表。
$("#selectRegion").select2({
placeholder: "Filter By Region",
allowClear: true,
width: '100%'
}).on("change", function (e) {
debugger;
var data = [];
var regionID = $(this).val();
$.each(DropDowns.Clients, function (idx, item) {
if (item.regionID == regionID)
data.push({ "id": item.clientID, "text": item.Name });
})
$("#selectClient").select2({
data: data
});
debugger;
});
$("#selectClient").select2({
placeholder: "Filter By Client",
allowClear: true,
width: '100%'
}).on("change", function (e) {
});
当我更改复选框并且数据数组填充了正确的数据时,该函数会触发,但如果我随后设置数据属性,则没有任何变化。我已经通读了 Stack Overflow 上的当前解决方案,但到目前为止 none 它们已经奏效,所以我认为第二双眼睛可能会起作用。我正在使用 v4 select2 我应该考虑回到 2 吗?任何帮助将不胜感激。
我设法解决了以下问题。
//Clear List
$("#selectIssue").select2().empty()
$("#selectIssue").select2({
data: data,
placeholder: "Filter By Issue",
allowClear: true,
width: '100%'
})