При привязке к событию click для ввода флажка флажок уже устанавливается к тому времени, когда запускается мой обработчик событий, и, что более странно, переключение изменяется после запуска моего обработчика событий, если я укажу event.preventDefault ();
<input id="foo" type="checkbox"/>
function clicked(evt) {
alert(document.getElementById('foo').checked);
evt.preventDefault();
}
document.getElementById('foo').addEventListener('click',clicked);
[проверено в Chrome и Firefox]
JSFiddle для этого кода
Уведомление ответит «истина» (или обратное состояние флажка предварительного щелчка). После того, как вы отклоните предупреждение, флажок переключается обратно.
Итак, я думаю, что вопросы,
Какое фактическое событие по умолчанию было предотвращено? Я ошибаюсь, полагая, что мой обработчик событий должен быть запущен до изменения состояния? Есть ли способ законно перехватить щелчок флажка?
И почему в мире warnDefault вызывает повторное переключение флажка?