¿Cómo configurar la opción de radio marcada al cargar con jQuery?
Es necesario verificar si no se establece ningún valor predeterminado y luego establecer uno predeterminado
jquery
radio-button
Phill Pafford
fuente
fuente
Respuestas:
Digamos que tenía botones de radio como estos, por ejemplo:
Y quería marcar el que tiene un valor de carga "macho" si no se marca ninguna radio:
fuente
$radios.removeAttr('checked')
antes del accesorio. Confundirá el navegador y los valores publicados.¿Qué tal un trazador de líneas?
fuente
Este provocará un error en form.reset ():
Pero este funciona:
fuente
JQuery tiene en realidad dos formas de establecer el estado marcado para la radio y las casillas de verificación y depende de si está utilizando el atributo de valor en el marcado HTML o no:
Si tienen un atributo de valor:
Si no tienen un atributo de valor:
Más detalles
En el primer caso, especificamos todo el grupo de radio usando el nombre y le decimos a JQuery que busque la radio para seleccionar usando la función val. La función val toma una matriz de 1 elemento y encuentra la radio con un valor coincidente, establece su marcada = verdadero. Otros con el mismo nombre serían deseleccionados. Si no se encuentra ninguna radio con un valor coincidente, todas se desmarcarán. Si hay varias radios con el mismo nombre y valor, se seleccionará la última y otras se anularán.
Si no está utilizando el atributo de valor para la radio, entonces necesita usar una identificación única para seleccionar una radio particular en el grupo. En este caso, debe usar la función prop para establecer la propiedad "marcada". Muchas personas no usan el atributo de valor con casillas de verificación, por lo que el n. ° 2 es más aplicable para casillas de verificación que para radios. También tenga en cuenta que como las casillas de verificación no forman un grupo cuando tienen el mismo nombre, puede hacer
$("[name=myCheckBox").prop("checked", true);
para las casillas de verificación.Puedes jugar con este código aquí: http://jsbin.com/OSULAtu/1/edit?html,output
fuente
Me gustó la respuesta de @Amc. Encontré que la expresión podría condensarse aún más para no usar una llamada filter () (@chaiko aparentemente también notó esto). Además, prop () es el camino a seguir frente a attr () para jQuery v1.6 +, consulte la documentación de jQuery para prop () para conocer las mejores prácticas oficiales sobre el tema.
Considere las mismas etiquetas de entrada de la respuesta de @Paolo Bergantino.
El one-liner actualizado podría leer algo como:
fuente
Creo que puede suponer que ese nombre es único y todas las radios del grupo tienen el mismo nombre. Entonces puedes usar el soporte de jQuery así:
Nota: Pasar matriz es importante.
Versión condicionada:
fuente
$("*")
, así que debería usar un tipo en arrendamiento$("input")
o una ID sea ideal ya que el DOM tiene llamadas nativas para obtener un elemento por iddocument.querySelectorAll
hace todo el trabajo.$("input[name=gender]")
oo$("input[name=gender]:radio")
(para navegadores modernos)$("input[name=gender][type=radio]")
Si desea que sea realmente dinámico y seleccione la radio que corresponde a los datos entrantes, esto funciona. Utiliza el valor de género de los datos pasados o usa el valor predeterminado.
fuente
Solución nativa de JS:
http://jsfiddle.net/jzQvH/75/
HTML:
fuente
Y si desea pasar un valor de su modelo y desea seleccionar un botón de radio del grupo en carga según el valor, use:
Jquery:
Y el html:
fuente
No necesito todo eso. Con HTML simple y antiguo puedes lograr lo que quieres. Si deja que la radio que desea verifique de forma predeterminada de esta manera:
<input type='radio' name='gender' checked='true' value='Male'>
cuando se carga la página, aparecerá marcada.
fuente
fuente
Aquí hay un ejemplo con los métodos anteriores:
En javascript:
fuente
Tenga en cuenta este comportamiento al obtener valores de entrada de radio:
Por
$('input[name="myRadio"]').val()
lo tanto , no devuelve el valor verificado de la entrada de radio, como es de esperar, devuelve el valor del primer botón de radio.fuente
De esta forma Jquery obtiene solo el elemento marcado
fuente
// Si lo estás haciendo en javascript o en un framework como backbone, encontrarás esto mucho, podrías tener algo como esto
mientras
no trabajará,
será.
su selector puede ser como los otros chicos arriba recomendados también.
fuente
Esto funciona para múltiples botones de radio
fuente