Select2取消选择所有值

时间:2013-09-13 08:57:32

标签: javascript jquery html selection jquery-select2

我想单击一下取消选择所有值,而不单独使用每个id

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

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

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

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

9 个答案:

答案 0 :(得分:42)

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

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

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

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

答案 1 :(得分:22)

请改为尝试:

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

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

演示here

答案 2 :(得分:14)

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

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

答案 3 :(得分:1)

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

通过这种方式,您将取消选择已插入的标记选项"即时"。

答案 4 :(得分:0)

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

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

不关注下拉列表并清除"选择"和" Select2"元素;)

答案 5 :(得分:0)

我尝试了上述解决方案,但它对我没有用。

这是一种黑客行为,您无需trigger change.

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

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

答案 6 :(得分:0)

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

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

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

答案 7 :(得分:0)

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

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

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

来自the documentation

答案 8 :(得分:-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',''); 
});