Il problema dei radio button è che il click lo trova anche nell'angolo dove non si assegna il valore, ma il click c'è.
Io ho sempre usato una rozzissima forma di controllo, una funzione ricorsiva che mi registrava il cambio valore dell'elemento con quel nome, e non con l'id.
Così avevo sempre sotto controllo che valore avesse il checkbox o se fosse cambiato.