En versiones de jQuery antes de 1.6 uso:
$('input[name="correctAnswer"]').attr('checked', false);
En las versiones de jQuery 1.6 después de que se debe utilizar:
$('input[name="correctAnswer"]').prop('checked', false);
pero si está utilizando 1.6.1+ puede utilizar la primera forma (véase la nota 2 a continuación).
Nota 1: es importante que el segundo argumento sea falsa y no "falsa" desde "falsa" no es un valor Falsy. 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, y .attr
.prop
que hacer dos cosas relacionadas pero ligeramente diferentes. Si en este caso particular, el consejo proporcionado 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 proporciona 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 que .attr
le permite establecer un valor de atributo HTML. Si está trabajando con DOM simple y establece la propiedad marcada, elem.checked
, true
o false
, cambia el valor en ejecución (lo que el usuario ve) y el valor devuelto rastrea el estado de la página. elem.getAttribute('checked')
sin embargo, solo devuelve el estado inicial (y devuelve 'checked'
o undefined
dependiendo del estado inicial del HTML). En 1.6.1+ usando .attr('checked', false)
hace elem.removeAttribute('checked')
y elem.checked = false
ya que el cambio causó muchos problemas de compatibilidad con versiones anteriores y realmente no puede decir si usted quería establecer el atributo HTML o la propiedad DOM. Ver más información en el documentation for .prop.
Si la respuesta de @ lambacck no funciona, ve al gestor de fallos en el sitio jQuery [http://bugs.jquery.com/ticket/10910]. Si está (como yo lo estaba) haciendo un bucle a través de un conjunto de botones de radio para intentar restablecerlos a sus valores predeterminados, el '# (selector) .prop ('checked', true);' falla cuando le sigue intentar establecer un botón de opción posterior en el mismo grupo para un estado no verificado. El truco es - solo establecer el botón de radio en un estado verificado y dejar que el grupo de botones de radio haga lo que hace (desmarque los demás ...) _. Además, al llamar '$ (selector) .click();' funciona, y activará cualquier evento asociado. –