Перехват изменения полей checkbox и radio

Для корректной обработки изменения состояния элемента checkbox стоит использовать комбинацию из событий change и click . Это необходимо, чтобы компенсировать ошибку в IE, из-за которой событие change не приходит вовремя. Вместо того чтобы генерировать это событие во время активации поля, IE генерирует его только после смены фокуса. Безусловно, это не приемлемо в случае, когда пользователь «кликает» по нему (фокус остается в поле, но его состояние меняется).

Благодаря системе подписки на несколько событий одновременно в jQuery это очень просто реализовать без лишнего кода:


$("input:checkbox").bind("change click", function () {
    // do something
});

Этот же способ нужно применять, для обработки событий radio кнопок.

Только в этом случае нужно внимательно проверять статус checkbox из-за того, что события будут происходить несколько раз подряд. Другими словами, категорически не стоит использовать toggle или что-либо в этом роде, а реализовать нужную логику в зависимости от состояния checked контролируемого поля.