2010-08-24 7 views
6

Je sais que je peux utiliser quelque chose décrit ici: How can I know which radio button is selected via jQuery?Comment puis-je savoir quel bouton radio est sélectionné avec jQuery sans rechercher le groupe radio à chaque fois?

dire jQuery("input[name=myradiogroup]:checked").val() pour obtenir la valeur de bouton radio sélectionné. Mais je voudrais mettre en cache le groupe de radio et déterminer quelle valeur est sélectionnée à un moment ultérieur.

Je veux faire quelque chose comme:

var myRadio = jQuery("input[name=myradiogroup]"); 
//some code 
var value = myRadio.getCheckedButton().val(); 

Toute façon de faire ceci ou dois-je exécuter explicitement le sélecteur avec :checked dans chaque fois que je veux savoir la valeur sélectionnée?

Répondre

8
var myRadio = jQuery("input[name=myradiogroup]"); 
var selectedRadio = myRadio.filter(":checked"); 
alert(selectedRadio.val()); 
+0

Hmm, c'est bizarre ... J'ai vu une réponse comme ça dans la question liée mais je n'ai pas réussi à la faire fonctionner. Je vais essayer à nouveau, mais il semble que .find recherche des éléments enfants, en ignorant le groupe radio lui-même, donc je reçois toujours un résultat vide. –

+0

'find' ne cherchera que dans les descendants, donc il retournera un ensemble vide puisque les éléments checkbox n'ont pas de descendants et l'appel de' val' sur cet ensemble vide retournera 'undefined' – Anurag

+0

Oups, devrait être filter. C'est ce que j'ai pour répondre et manger en même temps. Modifié le code. – epascarello

4

pourrait faire

myRadio.filter(':checked').val() 
-1
myValue=""; 
$('input[name=myradiogroup]').change(function() { 
    myValue= this.value; 
    alert(myValue); 
}); 

Maintenant, vous pouvez vérifier "maValeur" quand vous le souhaitez.