錯誤代碼模式
<input type="text" id="Text1" onload="showdata()" /> <!-- 錯誤:input 不支持 onload -->
<script>
function showdata() {
document.getElementById("Text1").innerText = str; // 錯誤屬性
}
</script>
三大修正點
- 事件綁定位置:
onload 僅屬於 window/body/img/script 等資源加載元素。應使用 window.onload = showdata; 或 <body onload="showdata()">。
- 屬性選擇:輸入框值通過
.value 讀寫,innerText/innerHTML 僅適用於容器元素(div/span/td 等)。
- 函數閉合:確保
function showdata() { ... } 完整閉合,避免語法錯誤導致後續代碼不執行。
正確完整示例
<input type="text" id="Text1" />
<script>
function showdata() {
var now = new Date();
var str = now.getFullYear() + '.' + (now.getMonth()+1) + '.' + now.getDate();
document.getElementById("Text1").value = str; // 關鍵:.value
}
window.onload = showdata; // 關鍵:window.onload
</script>
進階:分離式寫法
<script src="utils.js"></script> <!-- utils.js 內: export function showdata(){...} -->
<script>
import { showdata } from './utils.js';
document.addEventListener('DOMContentLoaded', showdata); // 現代標準,比 onload 更早觸發
</script>