jquery - Establecer la opción seleccionada del cuadro de selección
option selected jquery (14)
Adición a @icksde y @Korah (gracias tanto!)
Al compilar las opciones con AJAX, el documento.ready puede activarse antes de compilar la lista, por lo que
Esto no funciona
$(document).ready(function() {
$("#gate").val(''Gateway 2'');
});
Esto hace
Un tiempo de espera funciona pero como @icksde dice que es frágil (en realidad necesitaba 20ms en lugar de 10ms). Es mejor colocarlo dentro de la función AJAX de esta manera:
$("#someObject").change(function() {
$.get("website/page.php", {parameters}, function(data) {
$("#gate").append("<option value=''Gateway 2''">" + "Gateway 2" + "</option>");
$("#gate").val(''Gateway 2'');
}, "json");
});
Quiero configurar una opción que se seleccionó previamente para que se muestre en la carga de la página. Lo probé con el siguiente código:
$("#gate").val(''Gateway 2'');
con
<select id="gate">
<option value=''null''>- choose -</option>
<option value=''Gateway 1''>Gateway 1</option>
<option value=''Gateway 2''>Gateway 2</option>
</select>
Pero esto no funciona. ¿Algunas ideas?
Eso funciona bien. Vea este violín: http://jsfiddle.net/kveAL/
¿Es posible que necesite declarar su jQuery en un controlador $(document).ready()
?
Además, ¿podrías tener dos elementos que tengan la misma identificación?
Esta sería otra opción:
$(''.id_100 option[value=val2]'').prop(''selected'', true);
Esto definitivamente debería funcionar. Aquí hay una demo . Asegúrese de haber colocado su código en un $(document).ready
:
$(function() {
$("#gate").val(''Gateway 2'');
});
He encontrado que el uso del método jQuery .val () tiene un inconveniente importante.
<select id="gate"></select>
$("#gate").val("Gateway 2");
Si este cuadro de selección (o cualquier otro objeto de entrada) está en un formulario y hay un botón de reinicio usado en el formulario, cuando se hace clic en el botón de reinicio, el valor establecido se borrará y no se restablecerá al valor inicial como esperaría.
Esto parece funcionar mejor para mí.
Para cuadros seleccionados
<select id="gate"></select>
$("#gate option[value=''Gateway 2'']").attr("selected", true);
Para entradas de texto
<input type="text" id="gate" />
$("#gate").attr("value", "your desired value")
Para entradas de texto.
<textarea id="gate"></textarea>
$("#gate").html("your desired value")
Para casillas de verificación
<input type="checkbox" id="gate" />
$("#gate option[value=''Gateway 2'']").attr("checked", true);
Para botones de radio
<input type="radio" id="gate" value="this"/> or <input type="radio" id="gate" value="that"/>
$("#gate[value=''this'']").attr("checked", true);
Mi problema
get_courses(); //// To load the course list
$("#course").val(course); //// Setting default value of the list
Tuve el mismo problema. La única diferencia con su código es que estaba cargando el cuadro de selección a través de una llamada ajax y pronto, cuando se ejecutó la llamada ajax, había establecido el valor predeterminado del cuadro de selección
La solución
get_courses();
setTimeout(function() {
$("#course").val(course);
}, 10);
Sé que hay varias iteraciones de respuestas, pero ahora esto no requiere jQuery o cualquier otra biblioteca externa y puede lograrse con bastante facilidad con lo siguiente.
document.querySelector("#gate option[value=''Gateway 2'']").setAttribute(''selected'',true);
<select id="gate">
<option value=''null''>- choose -</option>
<option value=''Gateway 1''>Gateway 1</option>
<option value=''Gateway 2''>Gateway 2</option>
</select>
Tuve un problema donde el valor no se estableció debido a un error de sintaxis antes de la llamada.
$("#someId").value(33); //script bailed here without showing any errors Note: .value instead of .val
$("#gate").val(''Gateway 2''); //this line didn''t work.
Compruebe si hay errores de sintaxis antes de la llamada.
Yo tuve el mismo problema.
Solución: añadir una actualización.
$("#gate").val(''Gateway 2'');
$("#gate").selectmenu(''refresh'');
$(''#gate'').val(''Gateway 2'').prop(''selected'', true);
$("#form-field").val("5").trigger("change");
$(document).ready(function() {
$("#gate option[value=''Gateway 2'']").prop(''selected'', true);
// you need to specify id of combo to set right combo, if more than one combo
});
$(function() {
$("#demo").val(''hello'');
});
// Make option have a "selected" attribute using jQuery
var yourValue = "Gateway 2";
$("#gate").find(''option'').each(function( i, opt ) {
if( opt.value === yourValue )
$(opt).attr(''selected'', ''selected'');
});