jQuery Get Selected Option From Dropdown

前端 未结 30 3308
梦如初夏
梦如初夏 2020-11-22 02:56

Usually I use $(\"#id\").val() to return the value of the selected option, but this time it doesn\'t work. The selected tag has the id aioConceptName

相关标签:
30条回答
  • 2020-11-22 03:40

    Set the values for each of the options

    <select id="aioConceptName">
        <option value="0">choose io</option>
        <option value="1">roma</option>
        <option value="2">totti</option>
    </select>
    

    $('#aioConceptName').val() didn't work because .val() returns the value attribute. To have it work properly, the value attributes must be set on each <option>.

    Now you can call $('#aioConceptName').val() instead of all this :selected voodoo being suggested by others.

    0 讨论(0)
  • 2020-11-22 03:40
    <select id="form-s" multiple="multiple">
        <option selected>city1</option>
        <option selected value="c2">city2</option>
        <option value="c3">city3</option>
    </select>   
    <select id="aioConceptName">
        <option value="s1" selected >choose io</option>
        <option value="s2">roma </option>
        <option value="s3">totti</option>
    </select>
    <select id="test">
        <option value="s4">paloma</option>
        <option value="s5" selected >foo</option>
        <option value="s6">bar</option>
    </select>
    <script>
    $('select').change(function() {
        var a=$(':selected').text(); // "city1city2choose iofoo"
        var b=$(':selected').val();  // "city1" - selects just first query !
        //but..
        var c=$(':selected').map(function(){ // ["city1","city2","choose io","foo"]
            return $(this).text();
        }); 
        var d=$(':selected').map(function(){ // ["city1","c2","s1","s5"]
            return $(this).val();
        });
        console.log(a,b,c,d);
    });
    </script>
    
    0 讨论(0)
  • 2020-11-22 03:41

    I had the same issue and I figured out why it was not working on my case
    The html page was divided into different html fragments and I found that I have another input field that carries the same Id of the select, which caused the val() to be always empty
    I hope this saves the day for anyone who have similar issue.

    0 讨论(0)
  • 2020-11-22 03:44

    I stumbled across this question and developed a more concise version of Elliot BOnneville's answer:

    var conceptName = $('#aioConceptName :selected').text();
    

    or generically:

    $('#id :pseudoclass')
    

    This saves you an extra jQuery call, selects everything in one shot, and is more clear (my opinion).

    0 讨论(0)
  • 2020-11-22 03:45
    $('#aioConceptName option:selected').val();
    
    0 讨论(0)
  • 2020-11-22 03:45

    Reading the value (not the text) of a select:

    var status = $("#Status").val();
    var status = $("#Status")[0].value;
    var status = $('#Status option:selected').val();
    

    How to disable a select? in both variants, value can be changed using:

    A

    User can not interact with the dropdown. And he doesn't know what other options might exists.

    $('#Status').prop('disabled', true);
    

    B

    User can see the options in the dropdown but all of them are disabled:

    $('#Status option').attr('disabled', true);
    

    In this case, $("#Status").val() will only work for jQuery versions smaller than 1.9.0. All other variants will work.

    How to update a disabled select?

    From code behind you can still update the value in your select. It is disabled only for users:

    $("#Status").val(2);
    

    In some cases you might need to fire events:

    $("#Status").val(2).change();
    
    0 讨论(0)
提交回复
热议问题