bootstrap multiselect - 单击即可取消选中/取消选中所有选项

时间:2014-03-27 11:38:03

标签: jquery bootstrap-multiselect

我正在使用Bootstrap multiselect,我想添加一个选项来取消选中所有选定的选项。请为我提供相同的解决方案。感谢您的帮助:))

10 个答案:

答案 0 :(得分:11)

您可以使用.multiselect('refresh')文档here中提到的bootstrap-multiselect方法。

因此,在多选选择列表旁边添加一个HTML按钮/图标,然后使用以下代码:

$("#reset_client").click(function(){
  $('option', $('#select_client')).each(function(element) {
    $(this).removeAttr('selected').prop('selected', false);
  });
  $("#select_client").multiselect('refresh');
});
<select name="clients[]" multiple="multiple" id="select_client" style="display: none;">
    <option value="multiselect-all"> Select all</option>
    <option value="1">Client 1</option>
    <option value="2">Client 2</option>
    <option value="3">Client 3</option>
    <option selected="selected" value="4">Client 4</option>
    <option selected="selected" value="5">Client 5</option>
    <option value="6">Client 6</option>
    <option selected="selected" value="7">Client 7</option>
    <option value="8">Client 8</option>
</select>

<input type="button" value="Reset" name="reset_clients" id="reset_client" class="reset_button" title="Clear Selection">

答案 1 :(得分:7)

您可以添加“全选”按钮,按两次将“取消全部选择”。 为此,请添加以下选项:

includeSelectAllOption:true

这将基于select元素选择所有引导程序多选项。

function multiselect_deselectAll($el) {
    $('option', $el).each(function(element) {
        $el.multiselect('deselect', $(this).val());
    });
}

$('.multiselect').each(function() {
    var select = $(this);
    multiselect_deselectAll(select);
});

您可以手动添加一个选项“全部选择”,然后在按下时调用重置功能。<​​/ p>

请参阅: https://github.com/davidstutz/bootstrap-multiselect/issues/271

答案 2 :(得分:5)

您可以使用&#34; deselectAll&#34;方法

$("select.multiselect").multiselect("deselectAll", false);

告诉jQuery定位你的&#34;选择&#34;是非常重要的。只是,否则它会失败。这是因为插件添加了具有相同类名的其他内容。

@ L_7337 - 这与您链接的帖子不重复。如果您使用Bootstrap Multiselect

,这篇文章是关于如何取消选择所有选项的

另一篇文章是如何从正常的多选项中取消选择。

祝你好运 拉斯穆斯

答案 3 :(得分:4)

使用以下代码在多选引导程序下拉列表中取消选择所有选择项

$("#ddlMultiSelectId").multiselect('clearSelection');

答案 4 :(得分:1)

如果你有以下多选:

<div class="form-group">
      <label>Choose Skills</label>
      <select id="DDL" name="selValue" class="selectpicker form-control"  multiple>
               <option value="1">One</option>
               <option value="2">Two</option>
               <option value="3">Three</option>
        </select>
  </div>

然后你可以使用下面的jQuery来点击按钮取消选择所有选项:

$('#DDL').selectpicker("deselectAll", true).selectpicker("refresh");

答案 5 :(得分:0)

试试这个:

$("#select_id option:selected").removeAttr("selected");

答案 6 :(得分:0)

问题已在gitlab fork here

中修复

它说:

  

取消选择全部

时修复触发onSelectAll

或者我们可以等待issue #752解决。它仅在一个月前被提出。

答案 7 :(得分:0)

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class = "container">
<div class="modal show" id="myModal" role="dialog">
  <div class="modal-dialog">
    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button class="close" type="button" data-dismiss="modal">×</button>
        <nav class="navbar navbar-default">
  <div>
    <ul class="nav navbar-nav">
      <li class="active"><a href="#">Channel(s)</a></li>
      <li><a href="#">Collaborator(s)</a></li>
    </ul>
  </div>
</nav>
      </div>
      <div class="modal-body">
        <form>              <div class="form-check row">
            <label class="col-sm-2 form-check-label" for="ListeningProject">Listening Project</label>
              <div class="col-sm-10">
                <input class="form-check-input" id="ListeningProject" value="" type="checkbox" />
              </div>
          </div>
          <div class="form-group row">
            <label class="col-sm-2 form-check-label" for="AccountName">Select:</label>
            <div class="col-sm-10">
                <select class="form-control" id="AccountName" multiple="" required="">
                  <option>A Company</option>
                  <option>B Copany</option>
                  <option>C Company</option>
                  <option>D Company</option>
                </select>
            </div>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>
</div>
<script>
$("#ListeningProject").change(function(){  //"select all" change
    var status = this.checked; // "select all" checked status
    $('#AccountName option').prop('selected', status);
});
</script>
</body>
</html>

答案 8 :(得分:0)

您可以这样做,它对我有用:

$('#dropdownID').val([]).multiselect('refresh')

答案 9 :(得分:-5)

试试这个

$("option:selected").prop("selected", false)