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

select2更新提交后选项丢失、编辑模态框无法回显数据库值如何解决

问题1:编辑模态框中select2无法展示选中值

原因

仅给原生<select>标签赋值,select2组件不会自动同步原生控件的状态变化,需要主动触发更新。

修复代码

在给#regency_id赋值后新增触发select2更新的语句:

$('#regency_id').val(data.data.regency_id); 
// 新增下面这行代码
$('#regency_id').trigger('change');

如果仍未生效,可在模态框完全渲染后重新初始化select2并赋值,同时可以解决下拉框被模态框遮挡的常见问题:

// 放在$.get的回调最后,模态框显示之前
$('#modal-diklat').on('shown.bs.modal', function () {
  $('#regency_id').select2({
    // 保持你原有的select2配置参数
    dropdownParent: $('#modal-diklat')
  }).val(data.data.regency_id).trigger('change');
})
$('#modal-diklat').modal('show');

问题2:提交更新后select2下拉选项丢失

原因

通常是表单提交后重置、模态框关闭的逻辑里,误清空了原生select的option节点,或者销毁了select2实例未重新初始化导致的。

修复方案

  1. 不要直接操作#regency_id的option节点做清空,重置选中值统一用下面的代码:
$('#regency_id').val('').trigger('change');
  1. 如果模态框关闭后会销毁内部DOM,每次打开模态框时都要重新执行一次select2的初始化逻辑。
  2. 如果你在提交成功后调用了原生表单重置方法$('form')[0].reset(),重置后要加一行$('#regency_id').trigger('change')同步select2状态。

内容的提问来源于stack exchange,提问作者Khairunnisa Syahfitri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:27:01