Comment puis-je trouver tous les boutons radio dans le même «groupe» logique à l'aide de jQuery?

StackOverflow https://stackoverflow.com/questions/8952007

Question

J'écris un code qui met en évidence <input type=radio /> Au sein d'un "groupe de radio" lorsque l'un d'eux est modifié.
Dans le gestionnaire d'événements de l'événement radio "Change", j'utilise le code suivant pour trouver toutes les autres radios similaires:

radioHandler: function (event) {
    var element = $(this);
    var name = element.attr("name");
    // Find all radios in the same group:
    element.closest("form")
        .find("input[type=radio][name='" + name + "']")
        .each(function(){
            ... etc ...
        });
},

Cela fonctionne parfaitement si les radios sont effectivement contenues dans un formulaire.
Cependant, je veux aussi que cela fonctionne s'il y a des radios à l'extérieur la forme aussi.

Par exemple, en supposant que toutes les radios utilisent name, ce qui suit représente 3 groupes de radio différents (et tous les navigateurs se comportent de cette façon):

       o Radio A | o Radio B | o Radio C          (Group - no form)
<form> o Radio D | o Radio E | o Radio F </form>  (Group - form 1)
<form> o Radio G | o Radio H | o Radio I </form>  (Group - form 2)

Si j'ai un élément, quelle est la meilleure façon de trouver uniquement les radios qui font partie de son "groupe"?

De plus, pour les points bonus ... et si l'élément ne fait pas partie du document actuel - c'est-à-dire qu'il est contenu dans un autre contexte "détaché"? La solution actuelle fonctionne bien (car element.closest(...) utilise le contexte de l'élément).

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top