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.


Odpowiedzi:


185

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

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

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()

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).


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!





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()


0

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

$("#someId").val();

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>


0

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

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


$ ('select [name = ID Name] opcja: selected'). val (); Ten też działa
Abhijit Patra
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.