Ottieni il valore di un menu a discesa in jQuery


100

Ho un menu a discesa con una coppia "ID, nome".

Esempio

Jon Miller
Jim Smith
Jen Morsin

Jon MIller ha un ID 101
Jim Smith ha un ID 102
Jen Morsin ha un ID 103

Quando faccio quanto segue:

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

e seleziono Jon Miller, ottengo 101. Mi piacerebbe comunque prendere Jon Miller.


Risposte:


185

$('#Crd').val()ti darà il valore selezionato dell'elemento a discesa. Usalo per ottenere il testo delle opzioni selezionate.

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

3
$ ('# Crd option: selected'). Text () o $ ('# Crd option: selected'). Val (), .text ti dà il valore del testo visualizzato, non il valore
patrick choi

$ ('# Opzione Crd: selezionata'). Val (); for value
asifaftab87

13

Il modo migliore è usare:

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

A seconda del requisito, potresti anche usare in questo modo:

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

5

Se stai usando a <select>, .val()ottiene il 'valore' del selezionato <option>. Se non ha un value, potrebbe ricorrere a id. Metti il ​​valore che vuoi che restituisca valuenell'attributo di ciascuno<option>

Modifica: vedere i commenti per chiarimenti su ciò valueche è effettivamente (non necessariamente uguale valueall'attributo).


1
Solo un chiarimento, .val () restituisce la proprietà del valore live non il valore dell'attributo HTML.
Ciad

Corretta. Tuttavia non vi è alcuna differenza pratica in questo caso poiché l'OP non sembra voler cambiare la values in nessun momento.
Ansel Santosa

2
.val() gets the 'value' attribute of the selected <option>, come ho detto: solo chiarimento.
Ciad

E se avessi bisogno dell'indice o dell'ID invece del testo?
bgmCoder

5

Questo ha funzionato per me!

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

Spero che questo aiuti qualcuno!


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

selectSal è una classe.



2

Un'altra opzione:

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

0

Come è stato sottolineato ... in un selectriquadro, l' .val()attributo ti darà il valore dell'opzione selezionata. Se l'opzione selezionata non ha un attributo value, verrà impostato sul valore di visualizzazione dell'opzione (che è ciò che gli esempi sulla documentazione jQuery di.val show.

si desidera utilizzare .text()l'opzione selezionata:

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


0

Questo ti dà il valore corrente del menu a discesa, se il menu a discesa ha un ID di "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

Passa l'id e tieni premuto in una variabile e passa la variabile dove vuoi.

var temp = $ ('seleziona [nome = ID nome]'). val ();


$ ('seleziona [nome = ID nome] opzione: selezionata'). val (); Anche questo funziona
Abhijit Patra
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.