如何以编程方式在 select2 multi select 下拉列表中添加额外的 selection 而不会丢失现有的 selected 项目
How to add an additional selection in select2 multi select dropdown programmatically without losing the existing selected items
我有一个场景,就像每当用户 select 在 multi-select select2 下拉列表中有一个特定的“状态”时,另一个状态必须自动 select编辑
例如,如果用户 select 的状态 'A' 则状态 'C' 也必须 selected。逻辑是 A 和 C 总是在一起。
我正在寻找执行此操作的选项,目前,我正在捕获 select2:select
事件并检查 selected 项目是 A 还是 C,如果是,则获取所有 select 使用
编辑项目
select2Object.select2('data')
然后遍历项目并获取值,然后附加状态值'C',然后触发更改事件。
有什么直接的方法吗?例如,如果我选择
select2Object.val("C");
select2Object.trigger('change');
此代码将清除所有其他 select 离子和 select 只有状态 'C'。我正在寻找一种解决方案来添加新的 selection 项目而不丢失旧的 selected 项目。
这应该非常简单。您需要做的就是保存现有选择、推送新值并触发更改事件。所以对于你的情况,这应该有效:
// get all selected options (including the one you just selected)
let data = select2Object.val();
/* some logic that determines 'C' should be added */
data.push('C');
select2Object.val(data).trigger('change');
我有一个场景,就像每当用户 select 在 multi-select select2 下拉列表中有一个特定的“状态”时,另一个状态必须自动 select编辑
例如,如果用户 select 的状态 'A' 则状态 'C' 也必须 selected。逻辑是 A 和 C 总是在一起。
我正在寻找执行此操作的选项,目前,我正在捕获 select2:select
事件并检查 selected 项目是 A 还是 C,如果是,则获取所有 select 使用
select2Object.select2('data')
然后遍历项目并获取值,然后附加状态值'C',然后触发更改事件。
有什么直接的方法吗?例如,如果我选择
select2Object.val("C");
select2Object.trigger('change');
此代码将清除所有其他 select 离子和 select 只有状态 'C'。我正在寻找一种解决方案来添加新的 selection 项目而不丢失旧的 selected 项目。
这应该非常简单。您需要做的就是保存现有选择、推送新值并触发更改事件。所以对于你的情况,这应该有效:
// get all selected options (including the one you just selected)
let data = select2Object.val();
/* some logic that determines 'C' should be added */
data.push('C');
select2Object.val(data).trigger('change');