Bootstrap-select on click 获取点击值

新手上路,请多包涵

我正在使用 jQuery 插件: bootstrap-select.js 我的 HTML 是 select(multiple) -> option。当用户选择或取消选择选项时,我想获取当前单击的选项值。

示例:用户选择 Item 4 = console.log item 4。然后用户还选择 Item 2 = console.log item 2。目前我得到的是 item 4,item 2 …它们总是在一个数组中而不是单独的。

我的最终目标是根据用户选择的内容在页面上显示和隐藏 div。将有多个选择选项字段。

HTML 代码:

 <fieldset class="dreamT">
   <select name="team" id="team" multiple class="dropdown selectpicker show-menu-arrow show-tick form-control" title="Pelaajat" data-width="100%" data-size="auto" multiple data-selected-text-format="count > 2">
    <optgroup>
        <option value="item 1">Item 1</option>
        <option value="item 2">Item 2</option>
        <option value="item 3">Item 3</option>
        <option value="item 4">Item 4</option>
        <option value="item 5">Item 5</option>
        <option disabled value="item 6">Item 6</option>
    </optgroup>
   </select>
</fieldset>

JS代码:

 $("select#team").on("change", function(value){
   var This      = $(this);
   var selectedD = $(this).val();
   console.log(selectedD);
});

当前输出: ["item 1", "item 3", "item 4", "item 5"]

插件站点: bootstrap-select

原文由 Bonttimo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 794
2 个回答

bootstrap-select 事件 中所述,您可以使用 changed.bs.select 事件。

此事件在选择的值更改后触发。它通过以下 4 个参数:

  • 事件
  • 点击索引
  • 已选中
  • 上一个值
 $(function () {
  $('#team').selectpicker();
  $("#team").on("changed.bs.select", function(e, clickedIndex, isSelected, oldValue) {
      if (clickedIndex == null && isSelected == null) {
          var selectedItems = ($(this).selectpicker('val') || []).length;
          var allItems = $(this).find('option:not([disabled])').length;
          if (selectedItems == allItems) {
              console.log('seleted all');
          } else {
              console.log('deseleted all');
          }
      } else {
          var selectedD = $(this).find('option').eq(clickedIndex).text();
          console.log('selectedD: ' + selectedD +  ' oldValue: ' + oldValue);
      }
  });
});
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/css/bootstrap-select.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/js/bootstrap-select.min.js"></script>

<fieldset class="dreamT">
    <select name="team" id="team" multiple class="selectpicker show-menu-arrow show-tick form-control" title="" multiple data-actions-box="true"
            data-width="100%" data-size="auto" multiple data-selected-text-format="count > 2">
        <optgroup>
            <option value="item 1">Item 1</option>
            <option value="item 2">Item 2</option>
            <option value="item 3">Item 3</option>
            <option value="item 4">Item 4</option>
            <option value="item 5">Item 5</option>
            <option disabled value="item 6">Item 6</option>
        </optgroup>
    </select>
</fieldset>

原文由 gaetanoM 发布,翻译遵循 CC BY-SA 4.0 许可协议

或者只是在选项元素上有事件……

 $("option").on("click", function(value){
        var This = $(this);
        var selectedD = $(this).val();
        console.log(selectedD);
});

https://jsfiddle.net/adjavaherian/ssqz4sh8/

原文由 4m1r 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题