Jquery检测到bootstrap多选项下拉列表未被选中

时间:2017-03-22 17:37:03

标签: javascript jquery twitter-bootstrap

我有一个动态bootstrap多下拉选择器。

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

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

我想通过jquery做到这一点但是我有一个选项已经在选择一个选项时运行,当用户点击取消选择该选项时我该怎么做。

由于

2 个答案:

答案 0 :(得分:1)

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

以下是一个例子:

&#13;
&#13;
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;
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

this个帖子,您可以检查所选的值,如此

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