我正在制作一個表單來記錄一群人的數據,當按下按鈕添加另一個人時,控制臺會拋出一個 TypeError,說 addPerson() 不是一個函數。HTML(正文):<form method="POST"> <h3> People </h3> <div class="person"> <p> <label>Name</label> <input type="text" name="name" /> <br/> </p> <p> <label>Gender</label> <input type="radio" name="gender" value="male" />Male <input type="radio" name="gender" value="female" />Female <br /> </p> <p> <label>Date of Birth</label> <input type="date" name="dob" /> <br/> </p> </div> <br/> <input type="button" value="Add another person" onclick="addPerson()" id="addPerson" /></form><script src="client.js"></script>JavaScript:function addPerson(){ let personForm = document.getElementsByClassName("person")[0]; let personFormCopy = personForm.cloneNode(true); let buttonNode = document.getElementById("addPerson"); document.body.insertBefore(personFormCopy, buttonNode); let br150 = document.createElement("br"); document.body.insertBefore(br150, buttonNode); br150.style.lineHeight="150px";}錯誤:Uncaught TypeError: addPerson is not a function at HTMLInputElement.onclick
1 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
函數的名稱和按鈕 ID 是相同的。自從 IE 引入此行為以來,一些瀏覽器將 DOM 元素 ID 添加到window
range,這會導致您的情況發生沖突。
addPersonBtn
例如,可以通過將按鈕的 ID 更改為 來解決此問題。
不過,我建議不要混合使用 HTML 和 JS。您可以刪除onclick
HTML 中的屬性,然后像這樣編寫 JS:
document.getElementById('addPersonBtn').addEventListener('click', addPerson);
function addPerson(){
? ? console.log('It worked.');
}
<button id="addPersonBtn">Click me</button>
- 1 回答
- 0 關注
- 112 瀏覽
添加回答
舉報
0/150
提交
取消