Uzyskaj wartość listy rozwijanej w jQuery

100

Mam listę rozwijaną zawierającą parę „ID, nazwa”.

Przykład

Jon Miller
Jim Smith
Jen Morsin

Jon MIller ma identyfikator 101
Jim Smith ma identyfikator 102
Jen Morsin ma identyfikator 103

Kiedy wykonuję następujące czynności:

var arNames = $('#Crd').val() 

i wybieram Jona Millera, dostaję 101. Chciałbym jednak poprosić Jona Millera.

Nate Pet
źródło

Odpowiedzi:

185

$('#Crd').val()poda wybraną wartość elementu rozwijanego. Użyj tego, aby uzyskać tekst wybranych opcji.

$('#Crd option:selected').text();
ShankarSangoli
źródło
3
$ ('# Crd option: selected'). Text () or $ ('# Crd option: selected'). Val (), .text podaje wartość wyświetlanego tekstu, a nie wartość
patrick choi
$ ('# Opcja Crd: wybrana'). Val (); dla wartości
asifaftab87
13

Najlepszym sposobem jest użycie:

$("#yourid option:selected").text();

W zależności od wymagań możesz również użyć tego sposobu:

var v = $("#yourid").val();
$("#yourid option[value="+v+"]").text()
Sandeep Pal
źródło
5

Jeśli używasz a <select>, .val()pobiera „wartość” wybranego <option>. Jeśli nie ma value, może wrócić do id. W valueatrybucie każdego z nich umieść wartość, którą ma on zwrócić<option>

Edycja: Zobacz komentarze, aby wyjaśnić, co valuefaktycznie jest (niekoniecznie równe valueatrybutowi).

Ansel Santosa
źródło
1
Dla wyjaśnienia .val () zwraca właściwość live value, a nie wartość atrybutu HTML.
Czad
Poprawny. Jednak w tym przypadku nie ma praktycznej różnicy, ponieważ PO nie wydaje się chcieć zmieniać tych zasad valuew żadnym momencie.
Ansel Santosa
2
.val() gets the 'value' attribute of the selected <option>, jak powiedziałem: tylko wyjaśnienie.
Czad
A jeśli potrzebuję indeksu lub identyfikatora zamiast tekstu?
bgmCoder
5

To zadziałało dla mnie!

$('#selected-option option:selected').val()

Mam nadzieję, że to komuś pomoże!

N00b Pr0grammer
źródło
3
var sal = $('.selectSal option:selected').eq(0).val();

selectSal jest klasą.

Akanksha Singh
źródło
3

Spróbuj tego:

var text = $('#YourDropdownId').find('option:selected').text();
Fereydoon Barikzehy
źródło
2

Inna opcja:

$("#<%=dropDownId.ClientID%>").children("option:selected").val();
user3166722
źródło
0

Jak wskazano ... w selectramce .val()atrybut poda wartość wybranej opcji. Jeśli wybrana opcja nie ma atrybutu wartości, domyślnie będzie wyświetlana wartość opcji (tak jest w przykładach w dokumentacji jQuery programu.val show.

chcesz skorzystać .text()z wybranej opcji:

$('#Crd option:selected').text()

lhagemann
źródło
0

To daje aktualną wartość listy rozwijanej, jeśli ma ona identyfikator „someId”.

$("#someId").val();
jeswin
źródło
0

$('.leave_response').on('change', function() {
    var responseId = $(this).val();
    console.log(responseId);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
    <select class="leave_response" name="leave">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </select>
</td>

Yasas Malinga
źródło
0

Przekaż identyfikator i przytrzymaj zmienną, a następnie przekaż zmienną, gdzie chcesz.

var temp = $ ('select [nazwa = ID Nazwa]'). val ();

Abhijit Patra
źródło
$ ('select [name = ID Name] opcja: selected'). val (); Ten też działa
Abhijit Patra