web-dev-qa-db-fra.com

JQuery, Comment désélectionner tous les boutons radio du groupe radio

Quelqu'un sait comment désélectionner tous les boutons radio d'un groupe de radio?

HTML:

<div id="emptimfields">
              <label id="lbl_emptim">How regulary do you employ people to help cultivate your land? </label><br/><br/>

             <fieldset data-role="controlgroup" data-type="vertical" id="emptim">

              <input name="emptim" id="radio1" value="fromtimetotime" type="radio" openmrs-valuecoded="" />
              <label for="radio1"> From time to time </label>

              <input name="emptim" id="radio2" value="allthetime" type="radio" openmrs-valuecoded="" />
              <label for="radio2">All the time</label>

              <input name="emptim" id="radio3" value="dontknow" type="radio" openmrs-valuecoded="" />
              <label for="radio3"> Don't know </label> 
            </fieldset>
        </div>

Côté JQuery:

$('input:radio[name=emptim]:checked').prop('checked', false); // doesn't work 

Il me manque certainement quelque chose de fondamental, mais je ne peux pas comprendre quel est le problème.

Tout d'abord, je coche Oui, puis une valeur du deuxième groupe de radio: 

enter image description here

Ensuite, je coche Non pour masquer le deuxième groupe radio:

enter image description here

Ensuite, si je clique sur suivant, j'obtiens la valeur de ce que j'ai vérifié (mais je n'ai pas coché auparavant, alors je ne veux pas d'alerte, je veux que le bouton radio "De temps en temps" soit décoché):

enter image description here

Enfin, si je reviens, rien ne se passe:

enter image description here

36
Alexis C.

Vous pouvez leur donner un nom de classe et essayer:

$('.classname').prop('checked', false);

Lorsque vous utilisez une version plus ancienne de jQuery que la version 1.6, vous devez être

 $('<selector>').attr('checked', false);

MODIFIER :

Appelez la méthode .checkboxradio("refresh"); a également fonctionné pour moi.

71
Roel
$('input:radio[name=indicatorType]').each(function () { $(this).prop('checked', false); });

Solution alternative pour créer des boutons radio entiers non cochés d'un groupe de radios ('indicateurType' pour l'exemple de code ci-dessus).

11
user1841830

Cela devrait le faire. Remarquez l'option d'actualisation à la fin pour forcer la mise à jour du groupe de contrôle. 

Un autre avantage de cette méthode est qu'elle cible un groupe de radio spécifique par nom plutôt que toutes les commandes de radio d'une page.

$('input:radio[name=emptim]:checked').prop('checked', false).checkboxradio("refresh");
4
Phill Healey

L'accessoire ne fonctionne pas pour moi, par cela fonctionne parfaitement:

('input:radio[name="RadioName"]').each(function () { $(this).attr('checked', false); });
0
Jaggana