【问题标题】:Jquery detect bootstrap multiple option dropdown being unselectedJquery检测引导多个选项下拉菜单被取消选择
【发布时间】:2017-03-22 17:37:03
【问题描述】:

我有一个动态引导多重下拉选择器。

我想在用户取消选择某个选项时运行一些代码。

<select id="selectOptions" multiple>
  <option>Test1</option>
  <option>Test2</option>
  <option>Test3</option>
  <option>Test4</option>
  <option>Test5</option>
 <option>Test6</option>
</select>

我正在考虑通过 jquery 执行此操作,但是我有一个已在选择选项时运行的选项,当用户单击以取消选择该选项时我将如何执行此操作。

谢谢

【问题讨论】:

    标签: javascript jquery twitter-bootstrap


    【解决方案1】:

    您可以做的是将change 侦听器添加到select 元素,并保留上次触发此侦听器时选择的所有项目的数组。通过这种方式,您可以将当前选择的项目数组与之前选择的项目数组进行比较,以确定哪些项目未被选中。

    这是一个例子:

    var prevSelected = [];
    $("#selectOptions").change(function(){
      var selected = $(this).val() || [];
      var unselected = prevSelected.filter(function(v){
        return selected.indexOf(v) === -1;
      });
      if(unselected.length){
        console.log("value(s) " + unselected + " were/was unselected");
      }
      prevSelected = selected;
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select id="selectOptions" multiple>
      <option>Test1</option>
      <option>Test2</option>
      <option>Test3</option>
      <option>Test4</option>
      <option>Test5</option>
     <option>Test6</option>
    </select>

    【讨论】:

    • 太棒了,我需要将 jquery 更改为: $(document).on('change', '#selectOption', function() { } 但是现在一切正常。谢谢!
    • @JakeS 我很高兴能帮上忙。祝你好运。
    【解决方案2】:

    根据this 的帖子,您可以像这样检查选定的值

    var select = document.getElementById("selectOptions");
    $('#selectOptions').change(function(){
        for (index in select){
            if ( $("#selectOptions").val() === "" )
                {
                    //some code
                }
        }
    });
    

    【讨论】:

    • 我需要知道一个值何时被取消选择以及哪个值。我认为这不会有帮助。
    • @JakeS 我做了一个编辑,可能更接近你的要求。
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2014-10-21
    • 2018-04-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多