选择2 取消选择所有值

Select2 deselect all values

本文关键字:选择 取消      更新时间:2023-09-26

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

我摆弄了一会儿,但这取消选择只有第一个值。有什么建议吗?

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

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

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

$("select").val('').change();

这就是全部:)http://jsfiddle.net/6hZFU/78/

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

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

试试这个:

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

在这里演示

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

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

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

在撰写本文时(select2 v 4),Select2 可以添加一个按钮来清除多项选择。无需显示占位符<option></option>解决方法:

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

从文档中。

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

这样,您将取消选择已"即时"插入的标记选项。

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

这是一种黑客,您不必trigger change.

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

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

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

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

不专注于下拉列表并清理"选择"和"选择2"元素;)

你需要使用你选择的类(select2_single

例:

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

Debes usar la clase de tus select

例如:

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

试试这个,它工作得很好。

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

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