Estoy buscando una solución generalizada para esto.
Considere 2 entradas de tipo de radio con el mismo nombre. Cuando se envía, el que está marcado determina el valor que se envía con el formulario:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
El evento de cambio no se activa cuando se desactiva un botón de radio. Entonces, si la radio con valor = "1" ya está seleccionada y el usuario selecciona la segunda, handleChange1 () no se ejecuta. Esto presenta un problema (para mí de todos modos) en que no hay ningún evento en el que pueda detectar esta des-selección.
Lo que me gustaría es una solución alternativa para el evento onchange para el valor del grupo de casillas de verificación o, alternativamente, un evento oncheck que detecte no solo cuando una radio está marcada sino también cuando no está marcada.
Estoy seguro de que algunos de ustedes se han encontrado con este problema antes. ¿Cuáles son algunas soluciones alternativas (o idealmente, cuál es la forma correcta de manejar esto)? Solo quiero ver el evento de cambio, acceder a la radio previamente verificada, así como a la radio recién verificada.
PS
onclick parece un mejor evento (cross-browser) para indicar cuándo se verifica una radio, pero aún así no resuelve el problema no verificado.
Supongo que tiene sentido por qué onchange para un tipo de casilla de verificación funciona en un caso como este, ya que cambia el valor que envía cuando lo marca o desmarca. Desearía que los botones de radio se comportaran más como el cambio de un elemento SELECT, pero qué puedes hacer ...
myRadios
para leer la variableprev
que contiene la radio seleccionada actualmente. Se realiza una comparación dentro de cada controlador de clics para decidir si la radio clicada es la misma que la almacenadaprev
y, de lo contrario, la radio clicada actualmente se almacena allí. Dentro del controlador de clics, tiene acceso a laprev
radio seleccionada previamente: y la radio seleccionada actualmente:this