我正在制作一个表单来记录一群人的数据,当按下按钮添加另一个人时,控制台会抛出一个 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 关注
- 76 浏览
添加回答
举报
0/150
提交
取消