menus - Establezca el índice seleccionado de un menú desplegable usando jQuery
menu responsive desplegable (9)
Acabo de encontrar esto, me funciona y personalmente me resulta más fácil de leer.
Esto establecerá el índice real al igual que la opción número 3 de Gnarf.
// sets selected index of a select box the actual index of 0
$("select#elem").attr(''selectedIndex'', 0);
Esto no solía funcionar pero ahora ... ver error: http://dev.jquery.com/ticket/1474
Apéndice
Como se recomienda en los comentarios, use:
$("select#elem").prop(''selectedIndex'', 0);
¿Cómo configuro el índice de un menú desplegable en jQuery si la forma en que encuentro el control es la siguiente?
$("*[id$=''" + originalId + "'']")
Lo hago de esta manera porque estoy creando controles dinámicamente y dado que los identificadores se cambian cuando uso Formularios web, encontré esto como un trabajo para encontrar algunos controles. Pero una vez que tengo el objeto jQuery, no sé cómo configurar el índice seleccionado en 0 (cero).
Código JQuery:
$("#sel_status").prop(''selectedIndex'',1);
Código Jsp:
Status:
<select name="sel_status"
id="sel_status">
<option value="1">-Status-</option>
<option>ALL</option>
<option>SENT</option>
<option>RECEIVED</option>
<option>DEACTIVE</option>
</select>
Desea obtener el valor de la primera opción en el elemento de selección.
$("*[id$=''" + originalId + "'']").val($("*[id$=''" + originalId + "''] option:first").attr(''value''));
En primer lugar, ese selector es bastante lento. Escaneará todos los elementos DOM buscando los identificadores. Será menos exitoso si puede asignar una clase al elemento.
$(".myselect")
Sin embargo, para responder a su pregunta, hay algunas maneras de cambiar el valor de los 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);
Estoy escribiendo esta respuesta en 2015, y por alguna razón (probablemente versiones anteriores de jQuery) ninguna de las otras respuestas me ha funcionado. Quiero decir, cambian el índice seleccionado, pero en realidad no se refleja en el menú desplegable.
Aquí hay otra forma de cambiar el índice, y realmente hacer que se refleje en el menú desplegable:
$(''#mydropdown'').val(''first'').change();
Estoy usando
$(''#elem'').val(''xyz'');
para seleccionar el elemento de opción que tiene value = ''xyz''
Para seleccionar la segunda opción
$(''#your-select-box-id :nth-child(2)'').prop(''selected'', true);
Aquí agregamos el ''disparador'' (''cambio'') para hacer que el evento se dispare.
$(''#your-select-box-id :nth-child(2)'').prop(''selected'', true).trigger(''change'');
Seleccione la cuarta opción
$(''#select'').val($(''#select option'').eq(3).val());
$("[id$=''" + originalId + "'']").val("0 index value");
lo configurará en 0