jQuery get selected option value (not the text, but the attribute 'value')

后端 未结 14 1996
长情又很酷
长情又很酷 2020-11-29 18:13

Okay, I have this code:


                        
    
提交评论

  • 2020-11-29 18:45

    04/2020: Corrected old answer

    Use :selected psuedo selector on the selected options and then use the .val function to get the value of the option.

    $('select[name=selector] option').filter(':selected').val()
    

    Side note: Using filter is better then using :selected selector directly in the first query.

    If inside a change handler, you could use simply this.value to get the selected option value. See demo for more options.

    //ways to retrieve selected option and text outside handler
    console.log('Selected option value ' + $('select option').filter(':selected').val()); 
    console.log('Selected option value ' + $('select option').filter(':selected').text());
    
    $('select').on('change', function () {
      //ways to retrieve selected option and text outside handler
      console.log('Changed option value ' + this.value);
      console.log('Changed option text ' + $(this).find('option').filter(':selected').text());
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <select>
      <option value="1" selected>1 - Text</option>
      <option value="2">2 - Text</option>
      <option value="3">3 - Text</option>
      <option value="4">4 - Text</option>
    </select>

    Old answer:

    Edit: As many pointed out, this does not returns the selected option value.

    ~~Use .val to get the value of the selected option. See below,

    $('select[name=selector]').val()~~
    
    0 讨论(0)
  • 提交回复
    热议问题