En versiones de jQuery anteriores a 1.6 use:
$('input[name="correctAnswer"]').attr('checked', false);
En las versiones de jQuery posteriores a 1.6, debe usar:
$('input[name="correctAnswer"]').prop('checked', false);
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
if ("false") {
alert("Truthy value. You will see an alert");
}
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
, a true
, o false
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'
o undefined
depende del estado inicial del HTML). En 1.6.1+, el uso .attr('checked', false)
hace ambas cosas, elem.removeAttribute('checked')
y elem.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 .
#(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.