【问题标题】:Bootstrap-select - how to fire event on change multipleBootstrap-select - 如何在更改多个时触发事件
【发布时间】:2016-01-04 11:05:44
【问题描述】:

我有这种情况:

我无法使用 multiple=true 获得引导选择的选定值 我只能得到第一个项目? 所以,当我第一次选择芥末时,我会收到“芥末”的警报,但是当我在番茄酱之后选择时,我仍然会收到“芥末”?

如何获取最后选择或取消选择的项目的值?

$(function() {

  $('.selectpicker').on('change', function(){
    var selected = $(this).find("option:selected").val();
    alert(selected);
  });
  
});
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/css/bootstrap-select.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/js/bootstrap-select.js"></script>

<select class="selectpicker" multiple="true">
  <option>Mustard</option>
  <option>Ketchup</option>
  <option>Relish</option>
</select>
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/css/bootstrap-select.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/js/bootstrap-select.js"></script>

<select class="selectpicker" multiple="true">
  <option>Mustard</option>
  <option>Ketchup</option>
  <option>Relish</option>
</select>

【问题讨论】:

    标签: jquery twitter-bootstrap


    【解决方案1】:

    当有多个时,您可能需要遍历options selected。例如如下:

    $(function() {
    
      $('.selectpicker').on('change', function(){
        var selected = []; //array to store value
        $(this).find("option:selected").each(function(key,value){
            selected.push(value.innerHTML); //push the text to array
        });
        alert(selected);
      });
      
    });
    <link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
    <link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/css/bootstrap-select.css" rel="stylesheet"/>
    
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/js/bootstrap-select.js"></script>
    
    <select class="selectpicker" multiple="true">
      <option>Mustard</option>
      <option>Ketchup</option>
      <option>Relish</option>
    </select>

    【讨论】:

      【解决方案2】:

      您的代码中的问题是$(this).find("option:selected").val()

      正如@Guruprasad Rao 所说,不需要循环,只需删除上面一行中的.find("option:selected")

      $(function() {
      
        $('.selectpicker').on('change', function(){
          var selected = $(this).val();
          alert(selected);
        });
        
      });
      <link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
      <link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/css/bootstrap-select.css" rel="stylesheet"/>
      
      <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
      <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
      <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/js/bootstrap-select.js"></script>
      
      <select class="selectpicker" multiple="true">
        <option>Mustard</option>
        <option>Ketchup</option>
        <option>Relish</option>
      </select>

      如果你想获得最后一个被选中的元素,那么你可以使用数组并将被选中的元素存储在其中

      【讨论】:

      • 另一个解决方案这没有得到最后一个un-selected选项的值,所以试试这个answer
      猜你喜欢
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多