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

HTML 元素不支持 onload 事件:在 window.onload 中統一初始化的正確做法

     編輯:程式設計綜合問答

錯誤現象

在 <input type="radio" onload="AddCheckBoxRelay(this)"> 中綁定 onload,Chrome 中不觸發。

原因

<input>、<img>、<script>、<iframe> 等替換元素支持 onload,但 <input type="radio/checkbox/text> 等表單控件**不支持** onload 事件。 僅 window、body、img 等資源加載類元素觸發。

正確做法

在 window.onload (或 jQuery $(function(){...})) 中統一查找並初始化:

window.onload = function() {
    var inputs = document.getElementsByName('IsRelayExt');
    for (var i = 0; i < inputs.length; i++) {
        AddCheckBoxRelay(inputs[i]);
    }
};

function AddCheckBoxRelay(obj) {
    var chkRelay = <%=chkRelay %>;
    if (chkRelay) {
        obj.checked = <%= ... %>; // 設置勾選狀態
        obj.style.display = 'block';
    }
}

代碼細節修正

  • 原函數使用 $(this) 但 this 指向 window,改用參數 obj 直接操作 DOM。
  • 避免在循環中重複綁定事件,統一初始化更清晰。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved