如何使用jQuery取消Select2多选下拉框的全部选中状态?
解决Select2多选组件批量取消选中的问题
你用的是Select2封装的多选组件,直接操作原生DOM元素的方法(比如修改option的selected属性、清空select的value)都不会生效——因为Select2会维护自己的内部状态和UI,必须用它提供的官方API来操作。
正确的实现代码如下:
$('#field2').val([]).trigger('change');
val([]):告诉Select2清空所有选中的选项.trigger('change'):触发change事件,让组件同步更新UI和原生select元素的状态
之前几种方法无效的原因:
- 直接修改
selectedOptions的selected属性:只改动了原生DOM,但没同步到Select2的内部状态,UI不会跟着更新 - 设置
value = "":Select2多选模式下的value是数组类型,空字符串无法正确清空选中项 - 用
attr('selected', false):仅修改了原生option的属性,Select2不会感知到这个变化
内容的提问来源于stack exchange,提问作者henrry
相关产品推荐
相关产品推荐

