方法 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
结构。