Je recherche une solution généralisée pour cela.
Considérez 2 entrées de type radio avec le même nom. Une fois soumis, celui qui est coché détermine la valeur qui est envoyée avec le formulaire:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
L'événement de modification ne se déclenche pas lorsqu'un bouton radio est désélectionné. Donc, si la radio avec valeur = "1" est déjà sélectionnée et que l'utilisateur sélectionne la seconde, handleChange1 () ne s'exécute pas. Cela pose un problème (pour moi en tout cas) dans la mesure où il n'y a pas d'événement où je puisse attraper cette désélection.
Ce que je voudrais, c'est une solution de contournement pour l'événement onchange pour la valeur du groupe de cases à cocher ou, alternativement, un événement oncheck qui détecte non seulement quand une radio est cochée, mais aussi quand elle est décochée.
Je suis sûr que certains d'entre vous ont déjà rencontré ce problème. Quelles sont les solutions de contournement (ou, idéalement, quelle est la bonne façon de gérer cela)? Je veux juste attraper l'événement de changement, accéder à la radio précédemment vérifiée ainsi qu'à la radio nouvellement vérifiée.
PS
onclick semble être un meilleur événement (cross-browser) pour indiquer quand une radio est vérifiée mais il ne résout toujours pas le problème non vérifié.
Je suppose qu'il est logique de savoir pourquoi onchange pour un type de case à cocher fonctionne dans un cas comme celui-ci, car il modifie la valeur qu'il soumet lorsque vous le cochez ou le décochez. Je souhaite que les boutons radio se comportent plus comme onchange d'un élément SELECT mais que pouvez-vous faire ...
myRadios
pour lire la variableprev
qui contient la radio actuellement sélectionnée. Une comparaison est effectuée dans chaque gestionnaire de clics pour décider si la radio cliquée est la même que celle stockée dansprev
et si ce n'est pas le cas, la radio actuellement cliquée y est stockée. Dans le gestionnaire de clics, vous avez accès à laprev
radio précédemment sélectionnée: et à la radio actuellement sélectionnée:this