J'ai des boutons radio en HTML comme ceci:
<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>
Ceci est dans une balise de formulaire, et lorsque l'utilisateur soumet un formulaire, je veux rétablir tous les boutons radio par défaut. Ce qui signifie qu'aucun d'entre eux n'est vérifié.
J'ai ce code mais il donne une erreur disant [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;
Je fais cela dans IE 6.
#(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.Réponses:
Dans les versions de jQuery antérieures à 1.6, utilisez:
Dans les versions de jQuery après 1.6, vous devez utiliser:
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
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
surtrue
oufalse
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'
ouundefined
selon l'état initial du HTML). Dans la version 1.6.1+, l'utilisation.attr('checked', false)
fait les deuxelem.removeAttribute('checked')
etelem.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 .la source
La meilleure façon de définir l'état des boutons radio dans jquery:
HTML:
Code Jquery (1.4+) pour présélectionner un bouton:
Dans le code Jquery 1.6+, la méthode .prop () est préférée:
Pour désélectionner les boutons:
la source
Votre problème est que le sélecteur d'attribut ne commence pas par un
@
.Essaye ça:
la source
la source
Enfin, après de nombreux tests, je pense que le moyen le plus pratique et le plus efficace de prérégler est:
L'actualisation est requise avec l'objet JQueryUI.
Récupérer la valeur est simple:
Testé avec JQuery 1.6.1, JQuery UI 1.8.
la source
Je sais que c'est vieux et que c'est un peu hors sujet, mais en supposant que vous vouliez décocher uniquement des boutons radio spécifiques dans une collection:
Et si vous avez affaire à une liste de boutons radio, vous pouvez utiliser le sélecteur: vérifié pour obtenir celui que vous voulez.
la source
Jeu de boutons radio vérifié via jquery:
code jquery:
la source
Si vous souhaitez effacer tous les boutons radio dans le DOM:
$('input[type=radio]').prop('checked',false);
la source
la source
Bien que prop ait changé le statut vérifié, le changement le montre également dans le formulaire.
la source
Où vous avez:
<input type="radio" name="enddate" value="1" />
Après value = "1", vous pouvez également simplement ajouter
unchecked =" false" />
La ligne sera alors:
la source
Réglez tous les boutons radio sur la valeur par défaut:
la source
Pourquoi tu ne fais pas:
la source