2010-09-21 5 views
12

Есть ли какое-то событие для выбора переключателя?Событие для выбора радио кнопки?

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

Какое событие использовать?

+0

Привет, клик всегда будет работать на всех браузерах. Я не нахожу, что у вас означает внешнюю область ... Хотите ли вы активировать событие click даже для ярлыков? – Vijay

ответ

14

Это зависит от того, когда вы хотите получать информацию о мероприятии.

Если вы хотите узнать немедленно, перейдите по ссылке click. IE обновляет состояние checked до вызова функции обработчика, а I считает, что и другие браузеры. Вы можете дважды проверить, поскольку сейчас у меня есть только IE.

Если вам нужно знать только до того, как что-то еще произойдет, вы можете использовать change. IE не будет запускать событие change, пока выбранная радиокнопка не потеряет фокус. FF/chrome/others могут запускать событие без изменения фокуса, но я считаю, что IE действительно делает это правильно в этом случае.

7

Вы можете использовать событие onchange, которое будет срабатывать при изменении выбора радио (т. Е. При первом нажатии переключателя в группе или при изменении выбора в группе).

См http://jsfiddle.net/P9Z9Y/1/ для простого примера (нажатие на любой этикетке или радио-кнопке сам вызовет alert, если изменится значение радио-группы).

+4

Обратите внимание, что это будет в IE, только активируется, когда вход теряет фокус. Нажатие кнопки будет только фокусироваться. Вы хотите щелкнуть/вкладку где-нибудь еще после этого, чтобы он потерял фокус и, таким образом, активировал событие «change». – BalusC

+1

@Balus это не касается радиокнопки в Firefox или Chrome (onchange на радиокнопке немедленно запускается щелчком, который изменяет значение группы радиостанций, и даже при нажатии на ассоциированный '' см. Мой обновленный jsfiddle). У меня нет новой версии IE для тестирования. –

+0

Или IE (назад к версии 4), NN 4.x, Safari, Opera или даже клиент Lotus Notes. Для полей, редактируемых с клавиатуры, да, но не для переключателей. –

1

Вы пытались использовать событие onchange?

Смежные вопросы