javascript
html复选框值改变后事件,javascript – 从onclick/onchange事件获取HTML值的复选框
簡短的回答:
使用點擊事件,它不會觸發,直到更新的值,并觸發時,你希望它:
Checkbox
function handleClick(cb) {
display("Clicked, new value = " + cb.checked);
}
更長的答案:
更改事件處理程序不會被調用,直到檢查狀態已更新(live example | source),但是因為(作為TimBüthe在評論中指出)IE不會觸發更改事件,直到復選框失去焦點, t主動獲得通知。更糟糕的是,如果你點擊復選框的標簽(而不是復選框本身)來更新它,你可以得到你得到的舊值的印象(在IE這里嘗試它通過點擊標簽:live example | source )。這是因為如果復選框具有焦點,單擊標簽會使焦點遠離焦點,使用舊值觸發更改事件,然后點擊發生設置新值并將焦點置于復選框。非常混亂。
但你可以避免所有的不愉快,如果你使用click。
我使用DOM0處理程序(onxyz屬性),因為這是你問的,但為了記錄,我通常建議掛鉤處理程序代碼(DOM2的addEventListener或attachEvent在舊版本的IE),而不是使用onxyz屬性。這允許您將多個處理程序附加到同一個元素,并讓您避免使所有處理程序的全局函數。
此答案的早期版本使用此代碼為handleClick:
function handleClick(cb) {
setTimeout(function() {
display("Clicked, new value = " + cb.checked);
}, 0);
}
目標似乎是允許點擊完成,然后再查看值。據我所知,沒有理由這樣做,我不知道為什么我這樣做。該值在調用點擊處理程序之前已更改。實際上,規范是quite clear about that.沒有setTimeout的版本在我嘗試的每個瀏覽器(甚至IE6)中工作得很好。我只能假設我正在考慮一些其他平臺,直到事件發生后才進行更改。在任何情況下,沒有理由這樣做與HTML復選框。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的html复选框值改变后事件,javascript – 从onclick/onchange事件获取HTML值的复选框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python进阶(二十)Python爬虫
- 下一篇: JS对大陆车牌照的归属地(省份和城市)加