¿Por qué estoy luchando con esto?
Tengo un valor: 5
¿Cómo verifico el botón de radio del grupo "mygroup" con el valor de 5?
$("input[name=mygroup]").val(5); // doesn't work?
Con la ayuda del selector de atributos , puede seleccionar el elemento de entrada con el valor correspondiente. Luego debe establecer el atributo explícitamente, utilizando .attr
:
var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');
Desde jQuery 1.6, también puede usar el .prop
método con un valor booleano (este debería ser el método preferido):
$("input[name=mygroup][value=" + value + "]").prop('checked', true);
Recuerde que primero debe eliminar el atributo marcado de cualquiera de los botones de radio en un grupo de botones de radio, luego podrá agregar la propiedad / atributo marcado a uno de los botones de radio en ese grupo de botones de radio.
Código para eliminar el atributo marcado de todos los botones de radio de un grupo de botones de radio:
$('[name="radioSelectionName"]').removeAttr('checked');
.is
no ayudaría aquí, pero estoy de acuerdo.prop
. No estaba disponible en ese entonces;) Actualizará mi respuesta. ¡Gracias!.val()
admite la configuración de valores en grupos de radio o casillas de verificación. Esta respuesta funciona técnicamente, pero es indirecta y mucho menos legible / memorable.Hay una mejor manera de verificar radios y casillas de verificación; tienes que pasar una matriz de valores al método val en lugar de un valor bruto
Nota: Si simplemente pasa el valor por sí mismo (sin estar dentro de una matriz ), eso dará como resultado que todos los valores de "mygroup" se establezcan en el valor.
Aquí está el documento de jQuery que explica cómo funciona: http://api.jquery.com/val/#val-value
Y
.val([...])
también trabaja con elementos de formulario como<input type="checkbox">
,<input type="radio">
y<option>
que está dentro de un<select>
.Fiddle que demuestra este funcionamiento: https://jsfiddle.net/92nekvp3/
fuente
Prueba esto:
Demostración de JS Fiddle .
fuente
fuente
Cuando cambia el valor del atributo como se mencionó anteriormente, el
change
evento no se activa, por lo que si es necesario por alguna razón, puede activarlo de esta manerafuente
$("input[name='RadioTest'][value='2']").prop('checked', true);
Demostración de violín JS
fuente
O simplemente puede escribirle un atributo de valor:
Esto funciona para mi.
fuente
fuente
Versión de JavaScript puro:
fuente
fuente