Obtenga el valor de un menú desplegable en jQuery

100

Tengo un menú desplegable que tiene un par 'ID, nombre'.

Ejemplo

Jon Miller
Jim Smith
Jen Morsin

Jon MIller tiene una ID de 101
Jim Smith tiene una ID de 102
Jen Morsin tiene una ID de 103

Cuando hago lo siguiente:

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

y selecciono a Jon Miller, obtengo 101. Aunque me gustaría tener a Jon Miller.

Mascota Nate
fuente
Echa un vistazo a stackoverflow.com/questions/1643227/…
Franz

Respuestas:

185

$('#Crd').val()le dará el valor seleccionado del elemento desplegable. Use esto para obtener el texto de las opciones seleccionadas.

$('#Crd option:selected').text();
ShankarSangoli
fuente
3
$ ('# Opción Crd: seleccionada'). Text () o $ ('# Opción Crd: seleccionada'). Val (), .text le da el valor del texto mostrado, no el valor
patrick choi
$ ('# Opción Crd: seleccionada'). Val (); por valor
asifaftab87
13

La mejor forma es utilizar:

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

Dependiendo del requisito, también puede usar de esta manera:

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

Si está utilizando <select>, .val()obtiene el 'valor' del seleccionado <option>. Si no tiene un value, puede recurrir al id. Ponga el valor que desea que devuelva en el valueatributo de cada<option>

Editar: consulte los comentarios para obtener una aclaración sobre lo que valuerealmente es (no necesariamente igual al valueatributo).

Ansel Santosa
fuente
1
Solo una aclaración, .val () devuelve la propiedad de valor real, no el valor del atributo HTML.
Chad
Correcto. Sin embargo, no hay ninguna diferencia práctica en este caso, ya que el OP no parece querer cambiar la values en ningún momento.
Ansel Santosa
2
.val() gets the 'value' attribute of the selected <option>, como dije: solo aclarando.
Chad
¿Qué pasa si necesito el índice o la identificación en lugar del texto?
bgmCoder
5

¡Esto me ha funcionado!

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

¡Espero que esto ayude a alguien!

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

selectSal es una clase.

Akanksha Singh
fuente
3

Prueba esto:

var text = $('#YourDropdownId').find('option:selected').text();
Fereydoon Barikzehy
fuente
2

Otra opción:

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

Como se ha señalado ... en un selectrecuadro, el .val()atributo te dará el valor de la opción seleccionada. Si la opción seleccionada no tiene un atributo de valor, se utilizará de forma predeterminada el valor de visualización de la opción (que es lo que muestran los ejemplos en la documentación de jQuery de.val show.

desea utilizar .text()la opción seleccionada:

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

lhagemann
fuente
0

Esto le da el valor actual del menú desplegable, si el menú desplegable tiene un ID de "someId".

$("#someId").val();
jeswin
fuente
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
fuente
0

Pase el id y manténgalo en una variable y pase la variable donde quiera.

var temp = $ ('seleccionar [nombre = ID Nombre]'). val ();

Abhijit Patra
fuente
$ ('seleccionar [nombre = ID Nombre] opción: seleccionado'). val (); Este también funciona
Abhijit Patra