2009-08-03 18 views
122

Estoy intentando recuperar y establecer el valor seleccionado de un elemento de selección (lista desplegable) con jQuery.jQuery para recuperar y establecer el valor de la opción seleccionada del elemento de selección html

para retrievel He intentado $("#myId").find(':selected').val(), así como $("#myId").val() pero ambos devuelven undefined.

Cualquier observación sobre este problema sería muy apreciada.

gracias de antemano

+0

¡Si utiliza asp.net, es posible que Id no sea el mismo una vez renderizado! –

Respuesta

143

La forma en que lo tienes es correcta en el momento. O bien, la identificación del seleccionado no es lo que dices o tienes algunos problemas en el dom.

Compruebe el Id del elemento y también verifique que su marcado valide en here en W3c.

Sin un dom dom jQuery válido no puede funcionar correctamente con los selectores.

Si los identificadores son correctos y su dom valida a continuación, se aplica lo siguiente:

para leer Seleccionar valor de opción

$('#selectId').val(); 

Para fijar Seleccionar la opción de Valor

$('#selectId').val('newValue'); 

de leer el texto seleccionado

$('#selectId>option:selected').text(); 
+0

@ Html.DropDownList ("CoinTypes", (SelectList) ViewBag.RequiredLevel, new {@class = "form-control", @ style = "height: 21px; margin-top: 5px;"}) pero $ ('#CoinTypes'). Val (@ ViewBag.CoinType); no está seleccionando –

+0

@NithinPaul realmente no es un comentario, haz una pregunta que muestre html para que alguien pueda intentar averiguar qué está mal. ¡No estoy seguro de cómo puede esperar que alguien lo resuelva con un código web/mvc! – redsquare

6

$('#myId').val() debería hacerlo, en su defecto que iba a tratar:

$('#myId option:selected').val() 
+0

ordenado, muy útil. ¡Gracias! – thomasb

3

$("#myId").val() debería funcionar si myid es el elemento de identificación seleccionado!

Esto establecería el elemento seleccionado: $("#myId").val('VALUE');

248

Para obtener/establecer la propiedad selectedIndex real del selecto utilización elemento:

$("#select-id").prop("selectedIndex"); 

$("#select-id").prop("selectedIndex",1); 
+19

Es importante tener en cuenta que la característica prop() se implementó en la versión 1.6, por lo que las versiones anteriores no tienen esta funcionalidad. – RobB

+18

Me gusta esta respuesta porque realmente responde a la pregunta de cómo acceder al índice, no solo al valor. –

+4

sí. Pensé que esa era la pregunta original. –

1

Supongamos que ha creado una lista desplegable usando etiqueta SELECT como ya sigue,

<select id="Country"> 

Ahora bien, si usted quiere ver lo que es el valor seleccionado de caída hacia abajo con jQuery y luego, en pocas palabras siguiente línea a recuperar ese valor ..

var result= $("#Country option:selected").text(); 

funcionará bien.

4

Al configurar con JQM, no se olvide de actualizar el UI:

$('#selectId').val('newValue').selectmenu('refresh', true); 
+0

Gracias por este nugget: me preguntaba por qué el nuevo valor no aparece en la pantalla después de cambiar el selectedIndex con $ ("# slot-choice"). Prop ("selectedIndex", n). –

0

Sé que esto es viejo pero sólo tenía un oso de un tiempo con la maquinilla de afeitar, no podía conseguir que funcione sin importar que tan duro lo intenté Seguí regresando como "indefinido" sin importar si usé "text" o "html" para el atributo. Finalmente agregué el atributo "data-value" a la opción y lo leí perfectamente.

<option value="1" data-value="MyText">MyText</option> 

var DisplayText = $(this).find("option:selected").attr("data-value"); 
0

$ ("#myId option: selected") .text(); le dará el texto que seleccionó en el elemento desplegable. de cualquier manera, puede cambiarlo a .val(); para obtener el valor de eso compruebe la codificación siguiente

<select id="myId"> 
    <option value="1">Mr</option> 
    <option value="2">Mrs</option> 
    <option value="3">Ms</option>` 
    <option value="4">Dr</option> 
    <option value="5">Prof</option> 
</select> 
Cuestiones relacionadas