亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從按鈕調用函數時未捕獲類型錯誤

從按鈕調用函數時未捕獲類型錯誤

拉風的咖菲貓 2023-09-11 14:51:16
我正在制作一個表單來記錄一群人的數據,當按下按鈕添加另一個人時,控制臺會拋出一個 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 添加到windowrange,這會導致您的情況發生沖突。

addPersonBtn例如,可以通過將按鈕的 ID 更改為 來解決此問題。

不過,我建議不要混合使用 HTML 和 JS。您可以刪除onclickHTML 中的屬性,然后像這樣編寫 JS:

document.getElementById('addPersonBtn').addEventListener('click', addPerson);


function addPerson(){

? ? console.log('It worked.');

}

<button id="addPersonBtn">Click me</button>


查看完整回答
反對 回復 2023-09-11
  • 1 回答
  • 0 關注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號