javascript - Bootstrap Multiselect - 通过 onclick 取消选择

标签 javascript jquery twitter-bootstrap select multi-select

我正在使用Bootstrap-Multiselect功能;我想在单击“x”时取消选择一个选项。 这是我正在寻找的一个简单示例。

$(document).on("click", '#remove', function(a) {
  var tag = this.getAttribute("value");

  $('#tags').find('[value=' + tag + ']').prop('selected', false);
});
<html>

<head>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.7.5/css/bootstrap-select.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.7.5/js/bootstrap-select.min.js"></script>
</head>

<body>
  <div class="container">
    <h1>Bootstrap Select demo</h1>
    <select class="selectpicker" id='Tags' data-style="btn-primary" multiple data-max-options="2">
      <option value='Php' selected>PHP</option>
      <option>CSS</option>
      <option>HTML</option>
      <option>CSS 3</option>
      <option>Bootstrap</option>
      <option>JavaScript</option>
    </select>

    <div value='Php' id='remove'>x</div>
  </div>
</body>

</html>

最佳答案

这可以通过取消选择所有然后获取所选值并从中删除目标标记并重新选择其余部分然后最后刷新选择来实现:

$(document).on("click", '#remove', function(a) {
  var tag = this.getAttribute("value");
  var values = $('#tags').val();
  
  if(values){
  $('#tags').selectpicker('deselectAll');
  $('#tags').selectpicker('val', values.filter(function(e) {return e !== tag }));
  $('#tags').selectpicker('refresh');
  }
});
<html>

<head>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.7.5/css/bootstrap-select.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.7.5/js/bootstrap-select.min.js"></script>
</head>

<body>
  <div class="container">
    <h1>Bootstrap Select demo</h1>
    <select class="selectpicker" id='tags' data-style="btn-primary" multiple data-max-options="2">
      <option value='Php' selected>PHP</option>
      <option>CSS</option>
      <option>HTML</option>
      <option>CSS 3</option>
      <option>Bootstrap</option>
      <option>JavaScript</option>
    </select>

    <div value='Php' id='remove'>x</div>
  </div>
</body>

</html>

关于javascript - Bootstrap Multiselect - 通过 onclick 取消选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52513187/

相关文章:

javascript - 结合 AngularJS 和 Twitter Bootstrap 的最佳方式

javascript - 用循环替换多个 if 语句?

javascript - NodeJS 没有序列化 ES6 Map

javascript - jQuery回调函数中匹配到的捕获类

javascript - 将多个 div 拖入另一个 jQuery

javascript - JQuery .scrollTop() and .offset().top issue : how it work? 如何解决?

javascript - 我可以在 iframe 中显示网站图标吗?

javascript - Google+ 类似边框

css - 是否可以控制 Rails 读取 .CSS 文件的顺序,或者它是否按惯例固定?

twitter-bootstrap - Bootstrap CSS 破坏了工具提示弹出窗口