Les boutons radio ne sont pas cochés dans jQuery

J’ai cette ligne de code pour le chargement de la page:

if ($("input").is(':checked')) { 

et cela fonctionne bien lorsque la saisie du bouton radio est cochée. Cependant, je veux le contraire. Quelque chose dans le sens de

 if ($("input").not(.is(':checked'))) { 

de sorte que mon instruction if s’exécute lorsque aucun des boutons radio n’est sélectionné. Quelle est la meilleure manière de s’occuper de ça?

 if ( ! $("input").is(':checked') ) 

Ça marche pas?

Vous pourriez également essayer de parcourir les éléments comme ceci:

 var iz_checked = true; $('input').each(function(){ iz_checked = iz_checked && $(this).is(':checked'); }); if ( ! iz_checked ) 
 if ($("input").is(":not(:checked)")) 

AFAIK, cela devrait fonctionner, testé avec la dernière version stable de jQuery (1.2.6).

Si mon profileur Firebug fonctionne correctement (et je sais bien l’utiliser), ceci:

 $('#communitymode').attr('checked') 

est plus rapide que

 $('#communitymode').is('checked') 

Vous pouvez essayer sur cette page 🙂

Et puis vous pouvez l’utiliser comme

 if($('#communitymode').attr('checked')===true) { // do something } 
 $("input").is(":not(':checked')")) 

C’est jquery 1.3, attention aux signes “et”!

 $('input:radio[checked=false]'); 

cela fonctionnera aussi

 input:radio:not(:checked) 

ou

 :radio:not(:checked) 

Cela fonctionne aussi. Il semble que la notation de travail la plus courte:! !$('#selector:checked')