首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Checkbox 點擊事件:改用 onchange 避免快速雙擊觸發兩次 onclick

     編輯:程式設計綜合問答

Checkbox 快速點擊兩次(未勾選→勾選→未勾選)時,雖然視覺狀態回到未勾選,但 onclick 卻觸發了兩次。原因是 onclick 針對「滑鼠按下並釋放」動作觸發,與勾選狀態無關;快速雙擊產生兩次獨立點擊事件。

解決方案:使用 onchange 監聽狀態變更

<input type="checkbox" id="chk" onchange="handleChange(this)">
<script>
function handleChange(cb) {
    if (cb.checked) {
        // 僅在真正變為勾選時執行
    }
}
</script>

onchange 僅在 checked 屬性**實際改變**時觸發(由 false→true 或 true→false),完美符合「使用者確認勾選/取消」的業務語意,且不受點擊速度影響。

補充:jQuery 寫法

$('#chk').on('change', function() {
    if (this.checked) { /* ... */ }
});

表單元素(checkbox、radio、select)的狀態變更監聽,**一律優先使用 change 事件**,避免 click 帶來的重複觸發與狀態不同步問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved