我正在從 JSON 生成來自/輸入和按鈕的動(dòng)態(tài)列表。該按鈕會(huì)觸發(fā)一個(gè) JavaScript 函數(shù),該函數(shù)讀取表單中輸入的當(dāng)前內(nèi)容。但是,當(dāng)單擊按鈕時(shí),我收到以下錯(cuò)誤代碼Uncaught TypeError: Cannot read property '0' of undefined。這告訴我表單中沒有元素,但我不知道為什么。嘗試 0-3 只是為了確保。長度也返回未定義。我能夠編輯表單的innerHTML。我試圖從中獲取值的精簡(jiǎn)代碼。<!DOCTYPE html><html><body onload="gen_form()"><div id="connectResult"></div><p id="demo">RESULT HERE</p> <script>const connect_result = document.getElementById("connectResult");function gen_form(){ var div = document.createElement("DIV"); div.setAttribute("id", "div0"); div.innerHTML += "sometxt<br/>"; var form1 = document.createElement("FROM"); form1.setAttribute("id", 'form_sometxt2_0'); var input1 = document.createElement("input"); input1.setAttribute("type",'text'); input1.setAttribute("name",'textbox'); form1.appendChild(input1); div.appendChild(form1); var btn4 = document.createElement("BUTTON"); btn4.setAttribute("id", 'WRITE_sometxt2_0'); btn4.innerHTML = 'WRITE'; btn4.setAttribute("onclick", "myFunction(this)"); div.appendChild(btn4); connect_result.appendChild(div);}function myFunction(param) { var text = document.getElementById("form_sometxt2_0").elements[0].value + "<br>"; document.getElementById("demo").innerHTML = text;}</script></html>以下正是我想要的,但它是靜態(tài)的。以上基于此。<!DOCTYPE html><html><body><form id="frm1"> <input type="text"></form><button onclick="myFunction()">Try it</button><p id="demo">RESULT HERE</p> <script>function myFunction() { var text = document.getElementById("frm1").elements[0].value + "<br>"; document.getElementById("demo").innerHTML = text;}</script></html>我的問題是:這兩個(gè)代碼片段之間有什么區(qū)別,我該如何修復(fù)上述錯(cuò)誤?我不想使用提交輸入,因?yàn)闀?huì)有第二個(gè)按鈕來編輯輸入值的內(nèi)容。PS:我對(duì) JavaScript 及其術(shù)語相當(dāng)陌生。使用 Chrome 作為我的調(diào)試器。
從生成的 JavaScript 元素中未捕獲的 TypeError
萬千封印
2021-09-17 12:30:12