【问题标题】:Select2 deselect all valuesSelect2 取消选择所有值
【发布时间】:2013-09-17 21:35:45
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 请在包含小提琴的问题中添加代码。

标签: javascript jquery html selection jquery-select2


【解决方案1】:
$("select").val('').change();

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

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

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

【讨论】:

  • 是的,因为当您更改任何输入的值或通过 JavaScript 浏览器进行选择时,不会为该更改触发更改事件。当您触发更改事件时,select2 将赶上并反映 select 的新值。
  • 您的最后一条评论应添加到您的答案中以进行澄清。很好的解释。
【解决方案2】:

试试这个:

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

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

演示here

【讨论】:

  • @danip,您使用的是哪个版本的 select2,4.0 的一系列更改,在下面添加了一个新答案
  • @Steve 是的,我在使用 4.0 时遇到了问题,但我仍然不明白为什么每种语法都有效而多重选择器无效
【解决方案3】:

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

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

【讨论】:

  • 适用于版本:3.4.5 谢谢 :)
【解决方案4】:

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

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

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

来自the documentation

【讨论】:

    【解决方案5】:
    $('#destinatariMail').val("-1").trigger("change");
    

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

    【讨论】:

      【解决方案6】:

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

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

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

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

      【讨论】:

      • 正是我需要的!谢谢老兄。
      【解决方案7】:

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

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

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

      【讨论】:

        【解决方案8】:

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

        例子:

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

        Debes usar la case de tus select

        Ej:

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

        【讨论】:

        • 请用英文发表答案。谢谢
        • 你能用英文回答吗?谢谢
        • 好的,没问题,抱歉这个问题!
        • 好的,罗伯特,我试着用英语提供答案!
        【解决方案9】:

        试试这个,效果很好。

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-31
          • 2018-06-01
          • 2021-06-14
          • 1970-01-01
          • 1970-01-01
          • 2014-04-05
          • 2020-03-26
          • 1970-01-01
          相关资源
          最近更新 更多