【问题标题】:Getting values of a multiple allowed select [duplicate]获取多个允许选择的值[重复]
【发布时间】:2015-01-10 04:20:54
【问题描述】:

HTML:

<select multiple="" name="selectinputmultiple" id="">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

jQuery:

$('select[name=selectinputmultiple]').on('change', function() {
    console.log(this.value);
});

控制台只显示第一个选定的值,我想在每次更改时将值保存在数组中。比如:

  • 如果用户选择了12 => {1,2}
  • 然后用户取消选择1 并选择3 => {2,3}

【问题讨论】:

    标签: jquery forms select


    【解决方案1】:

    使用ma​​p()获取数组中所有选中的值

    $('select[name=selectinputmultiple]').on('change', function () {  
        var val=$('select[name=selectinputmultiple] option:selected').map(function () {
                return this.value;
        }).get();
        console.log(val)
    });
    

    DEMO

    【讨论】:

      【解决方案2】:

      你可以使用.val(),它应该给出一个数组

      $('select[name=selectinputmultiple]').on('change', function() {
        $('#log').html(JSON.stringify($(this).val()))
      });
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
      <select multiple="" name="selectinputmultiple" id="">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
      </select>
      <div id="log"></div>

      【讨论】:

        【解决方案3】:

        根据.val() doc

        在选择元素的情况下,当没有选择任何选项时返回null,当至少有一个选项时返回一个包含每个选定选项的值的数组,并且可以选择更多,因为存在multiple属性。

        你可以简单地使用:

        var values = $('[name="selectinputmultiple"]').val();
        

        【讨论】:

          【解决方案4】:

          这应该可以正常工作,

           $('select[name=selectinputmultiple]').on('change', function() {
             $('select[name=selectinputmultiple]').each(function() {
               console.log($(this).val());
               alert($(this).val());
             });
           });
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
          <select multiple="" name="selectinputmultiple" id="">
            <option value="1">One</option>
            <option value="2">Two</option>
            <option value="3">Three</option>
          </select>

          【讨论】:

          • 怎么会是-1???什么时候输出完美??
          • 哈,有人给其他人的答案-1。
          • @nimbuz gosh 为什么?即使给出正确的输出人们这样做!
          【解决方案5】:

          试试这个:

          <select multiple="" name="selectinputmultiple" id="">
              <option value="1">One</option>
              <option value="2">Two</option>
              <option value="3">Three</option>
          </select>
          
          $('select[name=selectinputmultiple]').on('change', function() {
              $('select[name=selectinputmultiple]').each(function() {
                 console.log($(this).val());
               });  
          });
          

          看看这个JSFiddle

          【讨论】:

          • -1!是什么原因?
          猜你喜欢
          • 2021-06-25
          • 1970-01-01
          • 2021-05-19
          • 2013-06-14
          • 1970-01-01
          • 2020-12-20
          • 2021-01-11
          • 2016-02-14
          • 2017-11-04
          相关资源
          最近更新 更多