
方法 1:先清空,再触发 change 事件
在清空 <select> 选项后,手动触发 change 事件 让 Select2 重新渲染:
$(“.number_id”).empty().trigger(“change”);
trigger("change") 让 Select2 重新检测数据,避免 UI 崩溃。
方法 2:清空并添加 placeholder
如果 empty() 后 Select2 没有默认选项,它可能会尝试渲染空内容,导致下拉框塌陷。可以手动设置一个占位符:
$form.find(“.number_id”).empty().append(‘<option value=””>请选择</option>’).trigger(“change”);
这样,Select2 仍然有一个可用的选项,防止 UI 崩溃。
方法 3:使用 val(null) 代替 empty()
如果你的目标是清空选中的值,但不销毁 select2,推荐使用 val(null):
$form.find(“.number_id”).val(null).trigger(“change”);
val(null) 只会清空当前选中值,而不会影响 Select2 结构。