2012-01-23 16 views
65

Posiadam rozwijane menu z parą "ID, nazwa".Uzyskaj wartość rozwijanego menu jQuery

Przykład

Jon Miller
Jim Smith
Jen Morsin

Jon Miller ID 101
Jim Smith identyfikator 102
Jen Morsin zawiera identyfikator 103

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

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

i wybieram Jona Millera, dostaję 101. Ale chciałbym dostać Jona Millera.

+0

Wyjazd http://stackoverflow.com/questions/1643227/jquery-get-selected-text-from-dropdownlist – Franz

Odpowiedz

133

poda wybraną wartość rozwijanego elementu. Użyj tego, aby uzyskać tekst wybranych opcji.

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

$ ('# opcja CRD: wybrany'). Tekst() lub $ ('# Crd option: selected'). val(), .text podaje wartość wyświetlanego tekstu, a nie wartość –

4

Jeśli używasz <select>, .val() dostaje 'wartość' wybranego <option>. Jeśli nie ma wartości value, może ona zostać zmieniona na id. Umieścić wartość chcesz go zwrócić w atrybucie każdego <option>

Edytuj value: Zobacz komentarze o wyjaśnienie co value faktycznie jest (niekoniecznie równe atrybutu value).

+1

Po prostu wyjaśnienie, .val() zwraca właściwość * live value *, a nie Wartość atrybutu HTML. – Chad

+0

Prawidłowo. Jednak w tej sprawie nie ma praktycznej różnicy, ponieważ OP nie chce w żadnym momencie zmieniać "wartości". –

+2

'.val() dostaje atrybut 'value' dla wybranego

0

Jak zauważono ... w polu select atrybut .val() poda wartość wybranej opcji. Jeśli wybrana opcja nie posiada wartości atrybutu będzie domyślnie wartości wyświetlacza opcji (czego przykładów na jQuery documentation of .val koncert

chcesz użyć .text() od wybranej opcji.

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

7

najlepszym sposobem jest użycie:

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

w zależności od wymagań, można także użyć w ten sposób:

var v = $("#yourid").val(); 
$("#yourid option[value="+v+"]").text() 
0

Podaje bieżącą wartość rozwijanego menu, jeśli lista rozwijana ma identyfikator "someId".

$("#someId").val(); 
3
var sal = $('.selectSal option:selected').eq(0).val(); 

selectSal jest klasa.

1

Spróbuj tego:

var text = $('#YourDropdownId').find('option:selected').text(); 
0

Inna opcja:

$("#<%=dropDownId.ClientID%>").children("option:selected").val(); 
2

ten pracował dla mnie!

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

Mam nadzieję, że to komuś pomaga!

-1

$('.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>

Powiązane problemy