Каков наилучший способ автоматически проверить, был ли флажок (не) установлен. Я знаю, что событие onclick будет отлавливать события щелчка, но что, если другой сценарий изменит состояние флажка «а также кнопка« проверить все »».
Вы можете использовать событие «изменить». В IE поведение некорректно, поэтому вам, возможно, придется наблюдать как за кликом, так и за изменением - http://www.quirksmode.org/dom/events/change.html.
Вы не можете использовать событие изменения для отслеживания программных изменений (изменений, не вызванных щелчком) для флажка. Таким образом, вам придется создать свой собственный монитор. Одним из способов является использование setInterval для периодической проверки. Что-то вроде: setInterval(checkstate,2000);. Посмотрите это это jsfiddle чтобы увидеть пример в действии.
setInterval
setInterval(checkstate,2000);
с использованием свойства checked и события CheckboxStateChange. Хотя я не знаю о совместимости.
checked
CheckboxStateChange
https://developer.mozilla.org/en/XUL/checkbox
https://developer.mozilla.org/en/XUL/Events
http://www.javascriptkit.com/javatutors/radiocheck.shtml
Другие сценарии должны инициировать установку флажка в самом коде.Событие будет пузыриться, даже если оно инициировано из скрипта.Вот пример, если вы заинтересованы -> http://jsfiddle.net/qSRzM/1/
Вы можете определить одну глобальную переменную в java-скрипте и изменить ее состояние на флажок или не отмечен при клике, который меняет состояние флажка, а при изменении другого скрипта состояние флажка