Sto cercando una soluzione generalizzata per questo.
Considera 2 ingressi di tipo radio con lo stesso nome. Quando inviato, quello che viene controllato determina il valore che viene inviato con il modulo:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
L'evento di modifica non si attiva quando viene deselezionato un pulsante di opzione. Pertanto, se la radio con valore = "1" è già selezionata e l'utente seleziona la seconda, handleChange1 () non funziona. Ciò presenta un problema (per me comunque) in quanto non esiste alcun evento in cui posso rilevare questa deselezione.
Quello che vorrei è una soluzione alternativa per l'evento onchange per il valore del gruppo checkbox o in alternativa un evento oncheck che rileva non solo quando una radio è selezionata ma anche quando è deselezionata.
Sono sicuro che alcuni di voi hanno già riscontrato questo problema. Quali sono alcune soluzioni alternative (o idealmente qual è il modo giusto per gestirlo)? Voglio solo vedere l'evento di modifica, accedere alla radio precedentemente verificata e alla radio appena controllata.
PS
onclick sembra un evento migliore (cross-browser) per indicare quando viene controllata una radio ma non risolve ancora il problema non verificato.
Suppongo abbia senso il motivo per cui onchange per un tipo di casella di controllo funziona in un caso come questo poiché modifica il valore che invia quando lo selezioni o deselezioni. Vorrei che i pulsanti di opzione si comportassero più come lo scambio di un elemento SELECT, ma cosa puoi fare ...
myRadios
per leggere la variabileprev
che contiene la radio attualmente selezionata. Viene eseguito un confronto all'interno di ciascun gestore di clic per decidere se la radio cliccata è la stessa di quella memorizzataprev
e, in caso contrario, la radio attualmente selezionata viene memorizzata lì. All'interno del gestore di clic, hai accesso al precedentemente selezionato:prev
e alla radio attualmente selezionata:this