<input type="hidden" name="money" value="" />
document.getElementById("money").value = sum_all; // Uncaught TypeError: Cannot set property 'value' of null
document.getElementById("money") 依 **id** 屬性查找元素,但 HTML 只有 name="money",**缺少 id="money"**,所以回傳 null。
<input type="hidden" name="money" id="money" value="" />
| 屬性 | 用途 | 唯一性 | JS 取得方式 |
|---|---|---|---|
name | 表單提交時的鍵值、伺服端接收參數名 | 可重複(如 radio group) | document.getElementsByName("money")[0] |
id | 文件樹中唯一識別、CSS 選擇器、JS 直接取元素 | **全頁唯一** | document.getElementById("money") |
**最佳實務:表單欄位同時設定 name(給後端)與 id(給前端 JS/CSS),兩者值通常相同。**
若使用 Vue/React/Angular,請用雙向綁定或 refs,完全避開 getElementById 這類手動 DOM 操作,根除此類低級錯誤。