2010-07-31 3 views
2

Voici un code qui vérifie si un bouton radio est désactivé. Comment puis-je modifier cela pour désactiver la radio si elle est actuellement désactivée? Et oui, je veux toujours supprimer la classe CSS parent. Merci.Comment puis-je désélectionner les boutons radio désactivés à l'aide de jQuery?

$('input:disabled', true).parent().removeClass("style1"); 

Pourquoi pas ce travail?

$('input:disabled', true).attr('checked', false).parent().removeClass("style1"); 
+1

Pourquoi * transmettez-vous 'true' pour le contexte? – Shog9

+0

J'ai regardé l'utilisation sur jquery.com et l'exemple qu'ils ont montré était juste comme ça. Est-ce une syntaxe incorrecte? Pourquoi l'attribut 'checked' obtient-il un vrai faux? –

+0

@Nick: la documentation pertinente peut être trouvée ici: ['jQuery()'] (http://api.jquery.com/jQuery/) - notez que le second paramètre est utilisé pour fournir un point de départ lors de l'appariement du premier paramètre, donc une valeur booléenne n'a pas de sens. Débarrassez-vous de cela, et vous devriez être bien ... Vous avez peut-être été troublé par la fonction ['attr()'] (http://api.jquery.com/attr/#attr2), qui prend un deuxième paramètre spécifiant la valeur désirée pour l'attribut spécifié par le premier paramètre? Je soupçonne Gumbo d'utiliser 'removeAttr()' dans son exemple pour éviter toute confusion ... – Shog9

Répondre

2

Comment réformer ce faire la radio sans contrôle si elle est actuellement désactivée?

Vous pouvez faire:

$(':radio').each(function(){ 
    if ($(this).is(':disabled')) { 
    $(this).attr('checked', false); 
    } 
}); 

Plus d'info:

+0

Je n'utilise pas de cases à cocher. J'utilise des boutons radio. Je leur fais un appel en utilisant $ ('input') et ils ont une propriété nommée: checked. –

+0

@Nick: J'ai mis à jour ma réponse, s'il vous plaît vérifier. – Sarfraz

+0

Merci cela fonctionne. –

1

Vous pouvez utiliser :radio pour obtenir seulement des boutons radio. Et avec les :disabled supplémentaires, vous n'aurez que des boutons radio désactivés. Donc, essayez ceci:

$(":radio:disabled").removeAttr("checked").parent().removeClass("style1") 
+0

J'essaie d'utiliser des boutons radio. Cela ne semble pas fonctionner: $ ('input: disabled', true) .attr ('checked', false) .parent(). RemoveClass ("style1"); –

+2

@Nick: Pourquoi utilisez-vous 'true' comme contexte? Veuillez tester le code tel que je l'ai écrit. – Gumbo

Questions connexes