Обработчик события OnChange для кнопки radio (INPUT type="radio") не работает как одно значение

Я ищу обобщенное решение для этого.

Рассмотрим 2 входа типа radio с одинаковыми именами. При отправке, тот, который отмечен, определяет значение, которое отправляется с формой:

<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />

Событие change не срабатывает, когда радиокнопка не выбрана. Таким образом, если радио с value="1" уже выбрано, а пользователь выбирает второе, функция handleChange1() не срабатывает. Это создает проблему (во всяком случае, для меня) в том, что нет события, в котором я мог бы перехватить этот отказ от выбора.

Я бы хотел получить обходной путь для события onchange для значения группы флажков или, в качестве альтернативы, событие oncheck, которое определяет не только когда радио установлено, но и когда оно снято.

Я уверен, что некоторые из вас уже сталкивались с этой проблемой. Какие есть обходные пути (или, в идеале, какой правильный способ решения этой проблемы)? Я просто хочу поймать событие изменения, получить доступ к ранее отмеченному радио, а также к вновь отмеченному радио.

P.S.
onclick кажется лучшим (кросс-браузерным) событием для указания, когда радио отмечено, но это все еще не решает проблему не отмеченного радио.

Я полагаю, имеет смысл, почему onchange для типа флажка работает в таком случае, поскольку он изменяет значение, которое он представляет, когда вы устанавливаете или снимаете флажок. Я бы хотел, чтобы радиокнопки вели себя более похоже на onchange элемента SELECT, но что поделаешь...

168
задан Matthew 23 January 2012 в 19:02
поделиться