You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JQuery向multi select多选框追加值时出现重复选项如何解决?

问题根因

你已经在Blade模板中通过@foreach循环将所有权限选项全部预渲染到了select下拉框中,编辑场景下用jQuery的append方法新增option的操作,等于把已经存在的权限选项重复插入到了下拉列表中,所以会出现重复条目,不需要新增option,只要给已存在的对应value的option设置选中状态即可。

修复方案

你用的是Select2多选组件,推荐直接用组件自带的批量赋值方法,代码最简单:

// 提取后端返回的权限ID组成数组
let selectedPerms = response.permissions.map(item => item.id);
// 直接给Select2赋值,会自动匹配对应选项设为选中,无需手动操作DOM
$("#permission").val(selectedPerms).trigger('change');

如果要手动遍历设置选中,代码如下:

// 先清空原有选中值,避免不同条目编辑的选中状态残留
$("#permission").val([]).trigger('change');
// 遍历匹配已有选项设置选中
$(response.permissions).each(function (i,value) {
  $("#permission option[value='"+value['id']+"']").prop('selected', true);
});
// 触发change事件让Select2更新渲染
$("#permission").trigger('change');

注意事项

如果模态框是新增、编辑复用的,建议加模态框关闭时的清空逻辑,避免新增场景携带上次编辑的选中值:

// 替换为你自己的模态框ID
$('#editModal').on('hidden.bs.modal', function () {
  $("#permission").val([]).trigger('change');
})

内容的提问来源于stack exchange,提问作者Ashq qash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:09:04