Я ищу обобщенное решение для этого.
Рассмотрим 2 входа типа радио с одинаковым именем. При отправке проверяется значение, которое отправляется с формой:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
Событие изменения не срабатывает, если переключатель не выбран. Поэтому, если радио со значением = "1" уже выбрано, а пользователь выбирает второе, handleChange1 () не запускается. Это представляет проблему (для меня в любом случае) в том, что нет никакого события, где я могу поймать этот отбор.
То, что я хотел бы, это обходной путь для события onchange для значения группы флажков или, в качестве альтернативы, событие oncheck, которое обнаруживает не только когда радио проверено, но также и когда оно не проверено.
Я уверен, что некоторые из вас сталкивались с этой проблемой раньше. Какие есть обходные пути (или в идеале, как правильно это сделать)? Я просто хочу поймать событие изменения, получить доступ к ранее проверенному радио, а также к недавно проверенному радио.
PS
onclick выглядит как лучшее (кросс-браузерное) событие, указывающее, когда радио проверено, но оно все еще не решает не проверенную проблему.
Я полагаю, что имеет смысл, почему onchange для типа флажка работает в подобном случае, так как оно изменяет значение, которое оно отправляет, когда вы проверяете или снимаете флажок. Я бы хотел, чтобы переключатели вели себя как замена элемента SELECT, но что вы можете сделать ...
myRadios
чтобы прочитать переменную,prev
которая содержит текущую выбранную радиостанцию. Сравнение выполняется в каждом обработчике кликов, чтобы определить, совпадает ли радио, на которое нажали, с тем, которое хранится в,prev
и если нет, то в нем хранится радио, на которое щелкают в данный момент. В обработчике кликов у вас есть доступ к ранее выбранному:prev
и текущему выбранному радио:this