概述
要創(chuàng)建完全動態(tài)的 HTML 表單,可以使用一些文檔對象模型 (DOM) 方法來創(chuàng)建,例如 createElement()、setAttribute()、appendChild()。這些 DOM 方法將幫助我們構(gòu)建動態(tài) HTML 表單。我們構(gòu)建此動態(tài)表單的方法是在 script 標簽中創(chuàng)建所有元素,設置屬性以添加一些功能,最后當我們的元素準備好提供服務時,我們將其附加到元素的父元素中。因此,附加在父表單標記內(nèi)的所有元素都是子元素。
語法
此任務中使用的語法 –
createElement() 方法用于創(chuàng)建任何 HTML 元素。示例:div、按鈕、p、標簽等
document.createElement(elements);
登錄后復制
setAttribute() 方法用于在元素中插入屬性。 setAttribute() 方法內(nèi)的值作為鍵值對傳遞。例如:(“占位符”,“名稱”),(“類型”,“提交”),(“值”,“提交”)等。
element.setAttribute(“Key”,“Value”);
登錄后復制
appendChild() 方法將我們使用 createElement() 創(chuàng)建的元素插入到任何 body 標記中。直接元素的元素引用作為參數(shù)傳遞給appendChild()。
parentElement.appendChild(element);
登錄后復制
算法
第 1 步???在編輯器上創(chuàng)建簡單的 HTML 樣板代碼。還創(chuàng)建一個按鈕和一個表單標簽,我們的動態(tài)表單將在其中加載。
第 2 步???在腳本標記內(nèi)創(chuàng)建一個 JavaScript 箭頭函數(shù)。
第 3 步?? 現(xiàn)在使用 document.getElementById() 獲取變量中的表單,因為表單標簽由 ID 名稱定義。
第 4 步???從這里開始構(gòu)建您的動態(tài)表單。使用文檔的 createElement() 方法創(chuàng)建一個新元素。
var userName = document.createElement("input");
登錄后復制
第 5 步?? 現(xiàn)在使用 setAttribute() 方法在上面創(chuàng)建的元素中設置屬性。
userName.setAttribute("placeholder", "Name");
登錄后復制
第 6 步???使用appendChild()方法將上面創(chuàng)建的元素附加到父元素“form”中,作為id名稱“dform”。
dform.appendChild(userName);
登錄后復制
第 7 步???重復第 4 步至第 6 步的步驟,并創(chuàng)建表單的所有必填字段。
第 8 步???使用createElement()創(chuàng)建另一個元素div,同時創(chuàng)建兩個分別提交和重置的按鈕,并將這兩個按鈕附加到其中。
第 9 步?點擊“生成表單”按鈕,將觸發(fā)“gForm()”函數(shù)并動態(tài)生成表單。
示例
在給定的示例中,我們使用 Javascript 構(gòu)建了一個表單。因此,表單標簽內(nèi)的所有元素都不像使用 body 標簽內(nèi)的元素那樣構(gòu)建為靜態(tài)的。該表格包含用于學生注冊的某些字段。這些字段是姓名、電子郵件、地址、出生日期、電話號碼,因此所有這些都是從腳本標記動態(tài)呈現(xiàn)的。
<html> <head> <title>Create form dynamically with js</title> </head> <body style="height: 90vh; width: 50%;display:flex;flex-direction: column;place-content: center; margin: auto;"> <p style="margin: 0 auto;">*Student registration form</p> <button style="margin: 0.5rem auto;width: 10rem;" onclick="gForm()"> Generate Form </button> <form id="dynamicForm"> </form> <script> gForm = () => { var dform = document.getElementById("dynamicForm"); dform.setAttribute("style", "display:flex;flex-direction:column") // dform.innerHTML="" var userName = document.createElement("input"); userName.setAttribute("placeholder", "Name"); dform.appendChild(userName); var userEmail = document.createElement("input"); userEmail.setAttribute("placeholder", "Email"); userEmail.setAttribute("type", "email"); dform.appendChild(userEmail); var userAdd = document.createElement("input"); userAdd.setAttribute("placeholder", "Address"); dform.appendChild(userAdd); var userDob = document.createElement("input"); userDob.setAttribute("placeholder", "D.O.B"); userDob.setAttribute("type", "date"); dform.appendChild(userDob); var userPhn = document.createElement("input"); userPhn.setAttribute("placeholder", "Phone number"); dform.appendChild(userPhn); var sBtn = document.createElement("input"); sBtn.setAttribute("value", "submit"); sBtn.setAttribute("type", "submit"); var rBtn = document.createElement("input"); rBtn.setAttribute("value", "reset"); rBtn.setAttribute("type", "reset"); var btns = document.createElement("div"); btns.setAttribute("style","margin:0.4rem auto") dform.appendChild(btns); btns.appendChild(sBtn); btns.appendChild(rBtn); } </script> </body> </html>
登錄后復制
在下面給定的圖像中,它顯示了上面示例的輸出,其中顯示了學生注冊表生成按鈕。當未單擊生成表單按鈕時,它會顯示一個簡單的頁面,如下所示。
當單擊上面的“生成表單”按鈕時,會觸發(fā)腳本標記內(nèi)創(chuàng)建的箭頭功能,結(jié)果會顯示一個動態(tài)生成的表單,其中包含學生注冊的所有必填字段。
結(jié)論
通過完成此任務,我們可以在網(wǎng)頁中創(chuàng)建任何動態(tài)元素。網(wǎng)頁中的動態(tài)內(nèi)容使頁面加載速度更快,因為服務器不必在頁面加載時一開始就響應整個龐大的代碼。動態(tài)表單還使頁面更具交互性。
以上就是如何使用 JavaScript 動態(tài)創(chuàng)建表單的詳細內(nèi)容,更多請關注www.92cms.cn其它相關文章!