Come posso trovare tutti i pulsanti di radio all'interno dello stesso logico "gruppo" usando jQuery?

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

Domanda

Sto scrivendo del codice che evidenzia tutti <input type=radio /> All'interno di un "gruppo radio" quando uno di loro è cambiato.
Nel gestore di eventi per l'evento della radio "modifica", utilizzo il seguente codice per trovare tutte le altre radio simili:

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 ...
        });
},

Funziona perfettamente se le radio sono effettivamente contenute in una forma.
Tuttavia, voglio anche che funzioni se ci sono radio fuori anche la forma.

Ad esempio, supponendo che tutte le radio utilizzino lo stesso name, quanto segue rappresenta 3 diversi gruppi radio (e tutti i browser si comportano in questo modo):

       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)

Se ho un elemento, qual è il modo migliore per trovare solo le radio che fanno parte del suo "gruppo"?

Inoltre, per i punti bonus ... Cosa succede se l'elemento non fa parte del documento attuale - cioè è contenuto in un altro contesto "distaccato"? La soluzione corrente funziona bene (perché element.closest(...) usa il contesto dell'elemento).

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top