2011-03-29 187 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/