jQuery Get Selected Option From Dropdown

Zwykle używam $("#id").val(), aby zwrócić wartość wybranej opcji, ale tym razem nie działa. Wybrany tag ma id aioConceptName

Kod Html

<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
    <option>choose io</option>
    <option>roma</option>
    <option>totti</option>
</select>
Author: Kamil Kiełczewski, 2012-05-18

30 answers

Dla opcji rozwijanych prawdopodobnie chcesz coś takiego:

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

Powodem val() nie jest to, że kliknięcie opcji nie zmienia wartości listy rozwijanej-po prostu dodaje właściwość :selected do wybranej opcji, która jest potomkiem listy rozwijanej.

 1943
Author: Elliot Bonneville,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-24 23:46:04

Ustaw wartości dla każdej z opcji

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

$('#aioConceptName').val() nie działa, ponieważ .val() zwraca atrybut value. Aby to działało poprawnie, atrybuty value muszą być ustawione na każdym <option>.

Teraz możesz nazywać $('#aioConceptName').val() zamiast tego wszystkiego :selected voodoo sugerowanego przez innych.

 358
Author: Jacob Valenta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-11 13:00:01

Natknąłem się na to pytanie i opracowałem bardziej zwięzłą wersję odpowiedzi Elliota BOnneville ' a:

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

Lub ogólnie:

$('#id :pseudoclass')

To oszczędza dodatkowe wywołanie jQuery, wybiera wszystko w jednym ujęciu i jest bardziej jasne (moim zdaniem).

 176
Author: Ed Orsi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-05 23:01:59

Spróbuj tego dla wartości...

$("select#id_of_select_element option").filter(":selected").val();

Lub to dla tekstu...

$("select#id_of_select_element option").filter(":selected").text();
 65
Author: Vladimir Djuricic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-27 08:54:52

Jeśli znajdujesz się w kontekście zdarzeń, w jQuery możesz pobrać zaznaczony element opcji używając :
$(this).find('option:selected') tak:

$('dropdown_selector').change(function() {
    //Use $option (with the "$") to see that the variable is a jQuery object
    var $option = $(this).find('option:selected');
    //Added with the EDIT
    var value = $option.val();//to get content of "value" attrib
    var text = $option.text();//to get <option>Text</option> content
});

Edit

Jak wspomniałem przez PossessWithin, moja odpowiedź to odpowiedź na pytanie: Jak wybrać wybraną "opcję".

Następnie, aby uzyskać wartość opcji, Użyj option.val().

 51
Author: JoDev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:39

Czy rozważałeś użycie zwykłego starego javascript?

var box = document.getElementById('aioConceptName');

conceptName = box.options[box.selectedIndex].text;

Zobacz także uzyskanie opcji Tekst / wartość za pomocą JavaScript

 33
Author: Roonaan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:45
$('#aioConceptName option:selected').val();
 23
Author: wild_nothing,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-26 23:25:58

Odczyt wartości (nie tekstu) select:

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

Jak wyłączyć select? w obu wariantach wartość można zmienić za pomocą:

A

Użytkownik nie może wchodzić w interakcje z rozwijanym menu. I nie wie, jakie inne opcje mogą istnieć.

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

B

Użytkownik może zobaczyć opcje w rozwijanym menu, ale wszystkie z nich są wyłączone:

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

W Tym Przypadku, $("#Status").val() będzie działać tylko dla wersji jQuery mniejsze niż 1.9.0. Wszystkie inne warianty będą działać.

Jak zaktualizować wyłączone select?

Z kodu za możesz nadal aktualizować wartość w swoim select. Jest ona wyłączona tylko dla użytkowników:

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

W niektórych przypadkach może być konieczne odpalenie zdarzeń:

$("#Status").val(2).change();
 17
Author: profimedica,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-06 06:17:08
<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>
 12
Author: Ol Sen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-13 21:25:27

Powinieneś użyć tej składni:

var value = $('#Id :selected').val();

Więc spróbuj tego kodu:

var values = $('#aioConceptName :selected').val();

Możesz przetestować w Fiddle: http://jsfiddle.net/PJT6r/9/

Zobacz o tej odpowiedzi w Ten post

 12
Author: D.L.MAN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-02 14:11:30

Używając jQuery, po prostu dodaj Zdarzenie change i uzyskaj wybraną wartość lub tekst wewnątrz tej funkcji obsługi.

Jeśli potrzebujesz zaznaczonego tekstu, użyj tego kodu:

$("#aioConceptName").change(function () {
    alert($("#aioConceptName :selected").text())
});

Lub jeśli potrzebujesz wybranej wartości, użyj tego kodu:

$("#aioConceptName").change(function () {
    alert($("#aioConceptName :selected").attr('value'))
});
 9
Author: sanman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-23 05:22:31

Użyj jQuery.val() Funkcja również dla wybranych elementów:

The .metoda val() służy przede wszystkim do uzyskiwania wartości elementów formularza takich jak input, select i textarea. W przypadku wybranych elementów, to zwraca null gdy nie jest zaznaczona żadna opcja i tablica zawierająca wartość każdej wybranej opcji, gdy jest co najmniej jedna i jest można wybrać więcej, ponieważ atrybut multiple jest obecny.

$(function() {
  $("#aioConceptName").on("change", function() {
    $("#debug").text($("#aioConceptName").val());
  }).trigger("change");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<select id="aioConceptName">
  <option>choose io</option>
  <option>roma</option>
  <option>totti</option>
</select>
<div id="debug"></div>
 9
Author: Salman A,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-08 14:50:07

Dla każdego, kto dowiedział się, że najlepsza odpowiedź nie działa.

Spróbuj użyć:

  $( "#aioConceptName option:selected" ).attr("value");

Działa u mnie w ostatnich projektach, więc warto na nie spojrzeć.

 8
Author: user2709153,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-30 10:26:52

Tylko to powinno zadziałać:

var conceptName = $('#aioConceptName').val();
 7
Author: d.popov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-17 13:44:39

Prosto i całkiem łatwo:

Twój dropdown

<select id="aioConceptName">
    <option>choose io</option>
    <option>roma</option>
    <option>totti</option>
</select>

kod Jquery, aby uzyskać wybraną wartość

$('#aioConceptName').change(function() {
    var $option = $(this).find('option:selected');

    //Added with the EDIT
    var value = $option.val(); //returns the value of the selected option.
    var text = $option.text(); //returns the text of the selected option.
});
 6
Author: Juan J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-21 09:02:53

Dla get value of tag selected:

 $('#id_Of_Parent_Selected_Tag').find(":selected").val();

A jeśli chcesz otrzymać tekst Użyj tego kodu:

 $('#id_Of_Parent_Selected_Tag').find(":selected").text();

Na Przykład:

<div id="i_am_parent_of_select_tag">
<select>
        <option value="1">CR7</option>
        <option value="2">MESSI</option>
</select>
</div>


<script>
 $('#i_am_parent_of_select_tag').find(":selected").val();//OUTPUT:1 OR 2
 $('#i_am_parent_of_select_tag').find(":selected").text();//OUTPUT:CR7 OR MESSI
</script>
 6
Author: mamal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 10:11:04

Możesz spróbować debugować to w ten sposób:

console.log($('#aioConceptName option:selected').val())
 4
Author: swathi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-27 12:25:32

Mam nadzieję, że to również pomoże lepiej zrozumieć i pomoże spróbuj tego poniżej,

$('select[id="aioConceptName[]"] option:selected').each(function(key,value){
   options2[$(this).val()] = $(this).text();
   console.log(JSON.stringify(options2));
});

Aby uzyskać więcej szczegółów proszę http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/

 4
Author: Vijayaragavan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-09 10:29:13

Dla dobrej praktyki należy użyć val(), aby uzyskać wartość wybranych opcji, a nie text().

<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
    <option value="choose">choose io</option>
</select>

Możesz użyć

   $("#aioConceptName").find(':selected').val();

Lub

   $("#aioConceptName :selected").val();
Chciałbym, żeby to pomogło ..
 3
Author: Yusuf Azan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-09 11:21:34

Jeśli chcesz pobrać atrybut 'value' zamiast węzła tekstowego, będzie to działać dla ciebie:

var conceptName = $('#aioConceptName').find(":selected").attr('value');
 2
Author: Drodarious,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-27 00:17:47

Spróbuj tego

$(document).ready(function() {

    $("#name option").filter(function() {
        return $(this).val() == $("#firstname").val();
    }).attr('selected', true);

    $("#name").live("change", function() {

        $("#firstname").val($(this).find("option:selected").attr("value"));
    });
});


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<select id="name" name="name"> 
<option value="">Please select...</option> 
<option value="Elvis">Elvis</option> 
<option value="Frank">Frank</option> 
<option value="Jim">Jim</option> 
</select>

<input type="text" id="firstname" name="firstname" value="Elvis" readonly="readonly">
 2
Author: Haris Sultan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-15 00:45:45
$('nameofDropDownList').prop('selectedIndex', whateverNumberasInt);

Wyobraź sobie DDL jako tablicę z indeksami, wybierasz jeden indeks. Wybierz ten, który chcesz ustawić za pomocą JS.

 2
Author: Satista,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-10 10:13:29

Możesz użyć $("#drpList").val();

 1
Author: Praveen Patel G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-07 11:01:01

Aby pobrać select o tej samej nazwie class=, możesz to zrobić, aby sprawdzić, czy wybrana jest opcja select.

var bOK = true;
$('.optKategorien').each(function(index,el){
    if($(el).find(":selected").text() == "") {
        bOK = false;
    }
});
 1
Author: Bludau Media,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-26 11:17:02

Miałem ten sam problem i odkryłem, dlaczego to nie działa w mojej sprawie
Strona html została podzielona na różne fragmenty html i odkryłem, że mam inne pole wejściowe, które nosi ten sam IDENTYFIKATOR select, co spowodowało, że val() jest zawsze pusta
Mam nadzieję, że to oszczędza dzień dla każdego, kto ma podobny problem.

 1
Author: Hasnaa Ibraheem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-28 07:29:22

Oto proste rozwiązanie tego problemu.

$("select#aioConceptName").change(function () {
           var selectedaioConceptName = $('#aioConceptName').find(":selected").val();;
           console.log(selectedaioConceptName);
        });
 1
Author: Sanjaya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-04 16:40:40

Try

aioConceptName.selectedOptions[0].value

let val = aioConceptName.selectedOptions[0].value

console.log('selected value:',val);
<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
    <option>choose io</option>
    <option>roma</option>
    <option>totti</option>
</select>
 1
Author: Kamil Kiełczewski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-21 17:43:06

Prawdopodobnie najlepszym rozwiązaniem w tego rodzaju scenariuszu jest użycie metody zmiany jQuery , aby znaleźć aktualnie wybraną wartość, jak tak:

$('#aioConceptName').change(function(){

   //get the selected val using jQuery's 'this' method and assign to a var
   var selectedVal = $(this).val();

   //perform the rest of your operations using aforementioned var

});

Preferuję tę metodę, ponieważ można wtedy wykonywać funkcje dla każdej wybranej opcji w danym polu select.

Mam nadzieję, że to pomoże!
 0
Author: Werner ZeBeard Bessinger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-03 08:03:28

Zazwyczaj trzeba nie tylko uzyskać wybraną wartość, ale także uruchomić jakąś akcję. Więc dlaczego nie uniknąć całej magii jQuery i po prostu przekazać wybraną wartość jako argument do wywołania akcji?

<select onchange="your_action(this.value)">
   <option value='*'>All</option>
   <option ... />
</select>
 0
Author: Roland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-08 12:40:17

Możesz wybrać używając dokładnie wybranej opcji : Poniżej podamy innerText

$("select#aioConceptName > option:selected").text()

While below da ci wartość.

$("select#aioConceptName > option:selected").val()
 0
Author: Hafiz Shehbaz Ali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-11 05:55:14