实现select2下拉框有个全部选项,当选择全部选项的时候清空其他选项,当已选中全部,再去选择其他选项的时候清除全部
//前提:select增加option <option value="-1">全部</option>
var selectId="#selectId";
$(selectId).select2({
allowClear: true,
placeholder: '请选择',
multiple: true,
language: "zh-CN",
}).on("select2:select", function (e) {
if (e.params.data.id == -1) {
//新增全部
$(selectId).select2("val", [-1]); //清空其他选项
}else{
//新增不是全部
var selected = $(selectId).select2().val(); //获取select2选中的值
if($.inArray("-1", selected) >= 0){
//判断已选中是否有全部选项,有的话清除全部选项
selected.splice(0,1); //清除第一个元素,也就是value为-1的选项
$(selectId).select2("val",selected); //重新初始化select2
}
}
})