Select2 取消选择所有值

问题描述 投票:0回答:10

我想一键取消选择所有值,而不需要单独使用每个

id

我摆弄了一段时间,但这仅取消选择第一个值。有什么建议吗?

这就是我尝试取消选择的方式:

$( "#mybutton" ).click(function() {    
   $("select").select2('val', '')
});

http://jsfiddle.net/6hZFU/75/

javascript jquery html selection jquery-select2
10个回答
73
投票
$("select").val('').change();

仅此而已:) http://jsfiddle.net/6hZFU/78/

说明:当您更改任何输入的值或通过 JavaScript 浏览器进行选择时,不会触发该更改的更改事件(规范是这么说的)。

当您触发更改事件时,select2 将赶上并反映 select 的新值。


29
投票

试试这个:

$('select').select2({
    placeholder: "select me"
});

$("#mybutton").click(function () {
    $("select").each(function () { //added a each loop here
        $(this).select2('val', '')
    });
});

演示这里


21
投票

如果使用 Select2 版本 4.0,您将需要使用新语法:

$("select").val(null).trigger("change");

8
投票

如果有人对 Select2 本机配置解决方案感兴趣(没有单独的按钮)。

截至撰写本文时(select2 v 4),Select2 可以添加一个按钮来清除多选。不需要

<option></option>
解决方法即可显示占位符:

$('#my-select').select2({
    placeholder: "Select something",
    allowClear: true
});

来自文档


3
投票
$('#destinatariMail').val("-1").trigger("change");

这样您还将取消选择已“即时”插入的标记选项。


2
投票

我尝试了上述解决方案,但它对我不起作用。

这是一种 hack,你不必这样做

trigger change.

$("select").select2('destroy').val("").select2();

$("select").each(function () { //added a each loop here
        $(this).select2('destroy').val("").select2();
});

1
投票

如果您想使用 Select2 v4 api 清除多个多选下拉列表,这里有一个简单的方法:

$("li.select2-selection__choice").remove();
$(".select2").each(function() { $(this).val([]); });

不关注下拉菜单并清理“select”和“Select2”元素;)


1
投票

您需要使用您的 select 的类(select2_single)

示例:

$('#button_clear').click(function () 
{
    $('.select2_single').select2('val',''); 
});

Debes usar la clase de tus select

Ej:

$('#button_clear').click(function () 
{
    $('.select2_single').select2('val',''); 
});

0
投票

试试这个,效果很好。

$('#form-search-amenities > option').prop("selected", false);
$("li.select2-selection__choice").remove();

#form-search-amenities
应替换为您的
<select>
下拉列表的 ID。


0
投票

试试这个

$('#mySelect2').val('');
$('#mySelect2').trigger('change.select2');
© www.soinside.com 2019 - 2024. All rights reserved.