清除多选 jquery-select2

Posted

技术标签:

【中文标题】清除多选 jquery-select2【英文标题】:Clear multiple select jquery-select2 【发布时间】:2018-07-02 04:52:32 【问题描述】:

我正在尝试为 jquery-select2 多选创建一个重置按钮。我不知道为什么我的解决方案不起作用。

html

<select id="workload-selector" class="js-source-states-2" multiple="multiple" style="width: 100%">             
  <option value="haha">haha</option>
  <option value="haha2">haha2</option>
  <option value="haha3">haha3</option>
</select>

<button id="reset">
Reset
</button>

javascript

$("#workload-selector").select2();
$("#reset").click(function()
  $("#workload-selector option:selected").removeAttr("selected");
);

我是在 jsFiddle 上实现的: https://jsfiddle.net/DTcHh/41975/

【问题讨论】:

可能重复***.com/questions/15205262/… 【参考方案1】:

select2 多次将值保存在数组中 你需要做的就是

$("#workload-selector").val([]).change();

【讨论】:

这是唯一真正适用于多选的答案。【参考方案2】:

你可以这样做:

$("#workload-selector").select2('val', '');

根据docs,这也有效:

$("#workload-selector").val("");
$("#workload-selector").trigger("change");

【讨论】:

不适用于多选。它使一个空标签。【参考方案3】:

我已经做到了,这是我的阐述示例

$("#reset").click(function()
  $("#workload-selector").val(null).trigger('change');
);

【讨论】:

这里是关于清除 select2 值的文档,不管是多个还是单个...select2.org/programmatic-control/… 很好的答案老兄,我非常感谢你。 :)【参考方案4】:

在文档https://select2.org/programmatic-control/add-select-clear-items#clearing-selections 中说我需要设置 null 值。选择有多个选择时,它给了我一个空白的选项。但是如果设置不存在值,它通常对我来说很清楚。

例如: 如果你有选项:

<select id="mySelect2" multiple="multiple">
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
</select>

这通常清除选择。

$('#mySelect2').val(-100).trigger('change');

【讨论】:

以上是关于清除多选 jquery-select2的主要内容,如果未能解决你的问题,请参考以下文章

将不在选择列表中的值输入到 jquery-select2 中

使用 JavaScript 清除多选下拉菜单

angularJs实现下拉框多选

Ant Design 多选没有清除原因

jquery-select2 总是在控制器中发送空参数

使用 jQuery 清除启用多选的 <select> 上的所有选择的快速方法?