溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript中怎么獲取 HTML表單的所有字段

發(fā)布時(shí)間:2021-08-10 16:26:43 來源:億速云 閱讀:82 作者:Leah 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)JavaScript中怎么獲取 HTML表單的所有字段,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

考慮一個(gè)簡單的 HTML 表單,用于將任務(wù)保存在待辦事項(xiàng)列表中:

<form>    <label for="name">用戶名</label>    <input type="text" id="name" name="name" required>     <label for="description">簡介</label>    <input type="text" id="description" name="description" required>     <label for="task">任務(wù)</label>    <textarea id="task" name="task" required></textarea>     <button type="submit">提交</button>  </form>

上面每個(gè)字段都有對(duì)應(yīng)的的type,ID和 name屬性,以及相關(guān)聯(lián)的label。用戶單擊“提交”按鈕后,我們?nèi)绾螐拇吮韱沃蝎@取所有數(shù)據(jù)?

有兩種方法:一種是用黑科技,另一種是更清潔,也是最常用的方法。為了演示這種方法,我們先創(chuàng)建form.js,并引入文件中。

從事件 target 獲取表單字段

首先,我們在表單上為Submit事件注冊一個(gè)事件偵聽器,以停止默認(rèn)行為(它們將數(shù)據(jù)發(fā)送到后端)。

然后,使用this.elements或event.target.elements訪問表單字段:

相反,如果需要響應(yīng)某些用戶交互而動(dòng)態(tài)添加更多字段,那么我們需要使用FormData。

使用 FormData

首先,我們在表單上為submit事件注冊一個(gè)事件偵聽器,以停止默認(rèn)行為。接著,我們從表單構(gòu)建一個(gè)FormData對(duì)象:

const form = document.forms[0];  form.addEventListener("submit", function(event) {   event.preventDefault();   const formData = new FormData(this); });

除了append()、delete()、get()、set()之外,F(xiàn)ormData  還實(shí)現(xiàn)了Symbol.iterator。這意味著它可以用for...of 遍歷:

const form = document.forms[0];  form.addEventListener("submit", function(event) {   event.preventDefault();   const formData = new FormData(this);    for (const formElement of formData) {     console.log(formElement);   } })

JavaScript中怎么獲取 HTML表單的所有字段

JavaScript中怎么獲取 HTML表單的所有字段

除了上述方法之外,entries()方法獲取表單對(duì)象形式:

const form = document.forms[0];  form.addEventListener("submit", function(event) {   event.preventDefault();   const formData = new FormData(this);   const entries = formData.entries();   const data = Object.fromEntries(entries); });

這也適合Object.fromEntries() (ECMAScript 2019)

為什么這有用?如下所示:

const form = document.forms[0];  form.addEventListener("submit", function(event) {   event.preventDefault();   const formData = new FormData(this);   const entries = formData.entries();   const data = Object.fromEntries(entries);    // send out to a REST API   fetch("https://some.endpoint.dev", {     method: "POST",     body: JSON.stringify(data),     headers: {       "Content-Type": "application/json"     }   })     .then(/**/)     .catch(/**/); });

以上就是JavaScript中怎么獲取 HTML表單的所有字段,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI