Tengo botones de radio en HTML como este:
<td>
<input id="radio1" type="radio" name="correctAnswer" value="1">1</input>
<input id="radio2" type="radio" name="correctAnswer" value="2">2</input>
<input id="radio3" type="radio" name="correctAnswer" value="3">3</input>
<input id="radio4" type="radio" name="correctAnswer" value="4">4</input>
</td>
Esto está en una etiqueta de formulario, y cuando el usuario envía un formulario, quiero que todos los botones de radio vuelvan al valor predeterminado. Lo que significa que ninguno de ellos lo comprobó.
Tengo este código pero da un error que dice [0] is null or not an object
$('input[@name="correctAnswer"]')[0].checked = false;
$('input[@name="correctAnswer"]')[1].checked = false;
$('input[@name="correctAnswer"]')[2].checked = false;
$('input[@name="correctAnswer"]')[3].checked = false;
Estoy haciendo esto en IE 6.
#(selector).prop('checked',true);
falla cuando se intenta establecer un botón de radio posterior en el mismo grupo en un estado sin marcar. El truco consiste en configurar el botón de radio en un estado marcado y dejar que el grupo de botones de radio haga lo que hace (desmarque los demás ...) . Además, llamar$(selector).click();
funciona y activará cualquier evento asociado.Respuestas:
En versiones de jQuery anteriores a 1.6 use:
En las versiones de jQuery posteriores a 1.6, debe usar:
pero si está utilizando 1.6.1+ puede usar el primer formulario (vea la nota 2 a continuación).
Nota 1: es importante que el segundo argumento sea falso y no "falso" ya que "falso" no es un valor falso. es decir
Nota 2: A partir de jQuery 1.6.0, ahora hay dos métodos similares,
.attr
y.prop
eso hace dos cosas relacionadas pero ligeramente diferentes. Si en este caso particular, el consejo que se proporciona arriba funciona si usa 1.6.1+. Lo anterior no funcionará con 1.6.0, si está utilizando 1.6.0, debe actualizar. Si quieres los detalles, sigue leyendo.Detalles: Cuando se trabaja con elementos DOM HTML rectas, hay propiedades unidos al elemento DOM (
checked
,type
,value
, etc.) que proporcionan una interfaz para el estado de ejecución de la página HTML. También existe la interfaz.getAttribute
/.setAttribute
que proporciona acceso a los valores del Atributo HTML tal como se proporcionan en el HTML. Antes de 1.6 jQuery difuminaba la distinción al proporcionar un método.attr
para acceder a ambos tipos de valores. jQuery 1.6+ proporciona dos métodos,.attr
y.prop
para distinguir entre estas situaciones..prop
le permite establecer una propiedad en un elemento DOM, mientras le.attr
permite establecer un valor de atributo HTML. Si está trabajando con DOM simple y establecer la propiedad marcada,elem.checked
, atrue
, ofalse
se cambia el valor de funcionamiento (lo que ve el usuario) y las pistas de valor devuelto los de estado de la página.elem.getAttribute('checked')
sin embargo, solo devuelve el estado inicial (y devuelve'checked'
oundefined
depende del estado inicial del HTML). En 1.6.1+, el uso.attr('checked', false)
hace ambas cosas,elem.removeAttribute('checked')
yelem.checked = false
dado que el cambio causó muchos problemas de compatibilidad con versiones anteriores y realmente no se puede saber si desea establecer el atributo HTML o la propiedad DOM. Ver más información en la documentación de .prop .fuente
La mejor manera de configurar el estado de los botones de radio en jquery:
HTML:
Código Jquery (1.4+) para preseleccionar un botón:
En el código Jquery 1.6+ se prefiere el método .prop ():
Para anular la selección de los botones:
fuente
Su problema es que el selector de atributos no comienza con a
@
.Prueba esto:
fuente
fuente
Finalmente, después de muchas pruebas, creo que la forma más conveniente y eficiente de preestablecer es:
La actualización es necesaria con el objeto JQueryUI.
Recuperar el valor es fácil:
Probado con JQuery 1.6.1, JQuery UI 1.8.
fuente
Sé que esto es antiguo y que está un poco fuera de tema, pero suponiendo que quisieras desmarcar solo botones de radio específicos en una colección:
Y si se trata de una lista de botones de radio, puede usar el selector: marcado para obtener exactamente el que desea.
fuente
Conjunto de botones de radio verificado a través de jquery:
código jquery:
fuente
Si desea borrar todos los botones de radio en el DOM:
$('input[type=radio]').prop('checked',false);
fuente
fuente
Aunque el accesorio cambió el estado marcado, pero el cambio también lo muestra en el formulario.
fuente
Donde tienes:
<input type="radio" name="enddate" value="1" />
Después de value = "1" también puede simplemente agregar
unchecked =" false" />
La línea será entonces:
fuente
Establezca todos los botones de radio al valor predeterminado:
fuente
¿Por qué no lo haces?
fuente