2011-03-29 133 views
2

什么是自动检查复选框是否已被(取消)检查的最佳方式。我知道onclick事件会捕获点击事件,但如果另一个脚本更改复选框的状态ala“检查所有按钮”会怎么样。监控复选框的检查状态

回答

1

你不能使用更改事件来监视编程方式的变化(更改,不是来自点击)复选框。所以你必须制作你自己的显示器。一种方法是使用setInterval进行定期检查。如:setInterval(checkstate,2000);。看到这个this jsfiddle看到一个实例。

+0

我想这个选项会显示出来。我已经使用onchange,但它似乎不可预知跨浏览器。我只是想避免使用cpu周期来合并复选框。 – Robert 2011-03-29 14:37:20

2

您可以使用“更改”事件。行为在IE中是越野车,所以你可能必须观察点击和更改 - http://www.quirksmode.org/dom/events/change.html

+0

它不是IE中的“bug”,它是按照W3C HTML 4.01规范实现的,它说它应该在控件失去焦点时触发,如果它已被修改。不幸的是,这种行为令人困惑,所以大多数使用click事件并使用元素的checked属性。 – RobG 2011-03-29 05:11:26

+1

'change'事件不会使用类似'[checkbox] .checked = true/false'的方式检测程序变更 – KooiInc 2011-03-29 06:10:33

+0

我同意你的意见。如果它在所有浏览器中发挥相同效果并检测到程序化更改,我会使用onchange事件。 – Robert 2011-03-29 14:40:39

0

您可以定义Java脚本一个全球变量,并改变其状态,以检查
或取消选中上点击改变复选框的状态,并在另一个脚本更改
的复选框的状态

0

其他脚本应该发起代码本身复选框点击。即使从脚本启动,该事件也会起泡。这里是一个例子,如果你有兴趣 - >http://jsfiddle.net/qSRzM/1/