javascript - 如何以编程方式在 select2 多选下拉列表中添加其他选择而不会丢失现有的选定项目
问题描述
我有一个场景,比如每当用户在多选 select2 下拉列表中选择特定的“状态”时,必须自动选择另一个状态。
例如,如果用户选择状态“A”,那么状态“C”也必须被选择。逻辑是 A 和 C 总是在一起。
我正在寻找执行此操作的选项,目前,我正在捕获select2:select
事件并检查所选项目是 A 还是 C,如果是,则使用
select2Object.select2('data')
然后遍历项目并获取值,然后附加状态'C'的值,然后触发更改事件。
有没有直接的方法可以做到这一点?例如,如果我和
select2Object.val("C");
select2Object.trigger('change');
此代码将清除所有其他选择并仅选择状态“C”。我正在寻找一种解决方案来添加新的选择项而不会丢失旧的选择项。
解决方案
这应该很简单。您需要做的就是保存现有选择,推送新值并触发更改事件。因此,对于您的情况,这应该有效:
// 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');
推荐阅读
- python-requests - 如何将 html 放在 python 中?
- drupal - Behat drush 驱动程序 $container 尚未初始化。\Drupal::setContainer() 必须使用真实容器调用
- c++ - 如何使用Windows API实现逐行打印
- javascript - 从文本文件中的对象获取对象键和值
- asp.net-core - Asp.net core 5.0 响应缓存忽略控制器上的持续时间指令?
- sql - 每日历史股票价格表。价格首次达到一定数量的股票如何拉动
- java - java函数返回说明
- python - . 在 python 中获取和使用输入的正确方法是什么,专门询问某人的名字然后在代码中使用它?
- amazon-web-services - 是否可以从 SSM 命令更新 AWS SSM 参数存储中的参数?
- c++ - 有没有更好的方法将字符串向量编写为函数的可选参数?