175 votos

Establecer el índice seleccionado de un lista desplegable con jQuery

¿Cómo configuro el índice de un menú desplegable en jQuery si lo estoy encontrando el control es como sigue:

$("*[id$='" + originalId + "']")

Lo hago así porque estoy creando controles dinámicamente y puesto que las identificaciones se cambian cuando utilice los formularios Web Forms, he encontrado esto como un trabajo en torno a encontrarme algunos controles. Pero una vez que tenga el objeto jQuery, no sé cómo establecer el índice seleccionado en 0 (cero).

Gracias de antemano por la ayuda!

367voto

gnarf Puntos 49213

En primer lugar - ese selector es bastante lento. Analizará cada elemento DOM buscando las identificaciones. Va a ser menos de un rendimiento si se puede asignar una clase al elemento.

$(".myselect")

Para responder a tu pregunta sin embargo, hay algunas maneras de cambiar el valor de elementos seleccionados en jQuery

// sets selected index of a select box to the option with the value "0"
$("select#elem").val('0'); 

// sets selected index of a select box to the option with the value ""
$("select#elem").val(''); 

// sets selected index to first item using the DOM
$("select#elem")[0].selectedIndex = 0;

// sets selected index to first item using jQuery (can work on multiple elements)
$("select#elem").prop('selectedIndex', 0);

108voto

4imble Puntos 3494

Acabo de encontrar esto, funciona para mí y personalmente me parece más fácil de leer.

Esto ajustará el índice real como opción de gnarf respuesta número 3.

// sets selected index of a select box the actual index of 0 
$("select#elem").attr('selectedIndex', 0);

Esto no solía trabajar pero ahora... mira bug: http://dev.jquery.com/ticket/1474

Adenda

Como se recomienda en el uso de comentarios:

$("select#elem").prop('selectedIndex', 0);

9voto

djs Puntos 81

Estoy usando

$('#elem').val('xyz');

para seleccionar el elemento de la opción que tiene un valor = 'xyz'

3voto

MacAnthony Puntos 2327

¿Quieres tomar el valor de la primera opción en el elemento select.

$("*[id$='" + originalId + "']").val($("*[id$='" + originalId + "'] option:first").attr('value'));

1voto

Josh Mein Puntos 12352
$("[id$='" + originalId + "']").val("0 index value");

lo pondrá a 0

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X