Dans les versions de jQuery antérieures à 1.6, utilisez:
$('input[name="correctAnswer"]').attr('checked', false);
Dans les versions de jQuery après 1.6, vous devez utiliser:
$('input[name="correctAnswer"]').prop('checked', false);
mais si vous utilisez 1.6.1+, vous pouvez utiliser le premier formulaire (voir note 2 ci-dessous).
Note 1: il est important que le deuxième argument soit faux et non "faux" car "faux" n'est pas une valeur falsifiée. c'est à dire
if ("false") {
alert("Truthy value. You will see an alert");
}
Remarque 2: Depuis jQuery 1.6.0, il existe maintenant deux méthodes similaires, .attr
et .prop
qui font deux choses liées mais légèrement différentes. Si dans ce cas particulier, les conseils ci-dessus fonctionnent si vous utilisez 1.6.1+. Ce qui précède ne fonctionnera pas avec 1.6.0, si vous utilisez 1.6.0, vous devez mettre à jour. Si vous voulez les détails, continuez à lire.
Détails: Lorsque vous travaillez avec des éléments DOM HTML droite, il y a des propriétés attachées à l'élément DOM ( checked
, type
, value
, etc.) qui fournissent une interface à l'état de fonctionnement de la page HTML. Il existe également l' interface .getAttribute
/ .setAttribute
qui permet d'accéder aux valeurs d'attribut HTML telles que fournies dans le HTML. Avant la version 1.6, jQuery brouillait la distinction en fournissant une méthode,, .attr
pour accéder aux deux types de valeurs. jQuery 1.6+ fournit deux méthodes .attr
et permet .prop
de faire la distinction entre ces situations.
.prop
vous permet de définir une propriété sur un élément DOM, tandis que .attr
vous permet de définir une valeur d'attribut HTML. Si vous travaillez avec un DOM simple et que vous définissez la propriété vérifiée,, elem.checked
sur true
ou false
vous modifiez la valeur en cours d'exécution (ce que voit l'utilisateur) et la valeur renvoyée suit l'état de la page. elem.getAttribute('checked')
cependant ne renvoie que l'état initial (et renvoie 'checked'
ou undefined
selon l'état initial du HTML). Dans la version 1.6.1+, l'utilisation .attr('checked', false)
fait les deux elem.removeAttribute('checked')
et elem.checked = false
puisque le changement a causé beaucoup de problèmes de compatibilité descendante et il ne peut pas vraiment dire si vous vouliez définir l'attribut HTML ou la propriété DOM. Pour plus d'informations, consultez la documentation de .prop .
#(selector).prop('checked',true);
échoue quand il a suivi en essayant de définir un bouton radio suivant dans le même groupe à un état non coché. L'astuce consiste à définir uniquement le bouton radio sur un état coché et à laisser le groupe de boutons radio faire ce qu'il fait (décocher les autres ...) . En outre, l'appel$(selector).click();
fonctionne et déclenche tous les événements associés.