Estou procurando uma solução generalizada para isso.
Considere 2 entradas do tipo de rádio com o mesmo nome. Quando enviado, o que é verificado determina o valor que é enviado com o formulário:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
O evento de alteração não é acionado quando um botão de opção é desmarcado. Portanto, se o rádio com o valor = "1" já estiver selecionado e o usuário selecionar o segundo, handleChange1 () não será executado. Isso apresenta um problema (pelo menos para mim), pois não há nenhum evento em que eu possa pegar essa desmarcação.
O que eu gostaria é uma solução alternativa para o evento onchange para o valor do grupo de caixas de seleção ou, alternativamente, um evento oncheck que detecta não apenas quando um rádio é marcado, mas também quando está desmarcado.
Tenho certeza de que alguns de vocês já enfrentaram esse problema antes. Quais são algumas soluções alternativas (ou, idealmente, qual é a maneira correta de lidar com isso)? Eu só quero pegar o evento de mudança, acessar o rádio verificado anteriormente, bem como o rádio verificado recentemente.
O PS
onclick parece ser um evento melhor (entre navegadores) para indicar quando um rádio é verificado, mas ainda não resolve o problema não verificado.
Suponho que faça sentido por que a troca de um tipo de caixa de seleção funciona em um caso como esse, pois altera o valor que ele envia quando você a marca ou desmarca. Desejo que os botões de opção se comportem mais como a troca de um elemento SELECT, mas o que você pode fazer ...
myRadios
para ler a variávelprev
que contém o rádio atualmente selecionado. É feita uma comparação dentro de cada manipulador de cliques para decidir se o rádio clicado é o mesmo que o armazenadoprev
e, se não, o rádio clicado atualmente é armazenado lá. Dentro do manipulador de clique, você tem acesso ao previamente selecionados:prev
eo rádio selecionado:this