javaScript在表單提交時獲取表單數(shù)據(jù)的示例代碼
方法 1:使用 FormData 對象
FormData 是一個方便的內(nèi)置對象,用于獲取表單中的鍵值對數(shù)據(jù)。
示例代碼
<form id="myForm">
<input type="text" name="username" value="JohnDoe" />
<input type="email" name="email" value="john@example.com" />
<input type="password" name="password" value="12345" />
<button type="submit">Submit</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function (event) {
event.preventDefault(); // 阻止默認(rèn)表單提交行為
// 獲取表單數(shù)據(jù)
const formData = new FormData(this);
// 遍歷表單數(shù)據(jù)
for (let [key, value] of formData.entries()) {
console.log(`${key}: ${value}`);
}
// 如果需要轉(zhuǎn)換為 JSON 對象
const data = Object.fromEntries(formData.entries());
console.log(data);
});
</script>解釋:
FormData(this):創(chuàng)建一個包含表單所有數(shù)據(jù)的對象。formData.entries():獲取鍵值對的迭代器。Object.fromEntries():將鍵值對轉(zhuǎn)換為對象。
方法 2:通過 serialize 手動提取表單數(shù)據(jù)
可以通過直接訪問表單元素的值手動提取表單數(shù)據(jù)。
示例代碼
<form id="myForm">
<input type="text" name="username" value="JohnDoe" />
<input type="email" name="email" value="john@example.com" />
<input type="password" name="password" value="12345" />
<button type="submit">Submit</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function (event) {
event.preventDefault();
const form = event.target;
const formData = {};
// 遍歷表單元素
Array.from(form.elements).forEach((element) => {
if (element.name) {
formData[element.name] = element.value; // 獲取每個字段的值
}
});
console.log(formData);
});
</script>解釋
form.elements:獲取表單中所有的控件(如<input>、<select>等)。- 通過
element.name識別表單字段并提取其value。
方法 3:使用 querySelector 手動獲取單個字段數(shù)據(jù)
如果你只想獲取某幾個字段的數(shù)據(jù),可以直接用選擇器獲取特定的表單字段。
示例代碼
<form id="myForm">
<input type="text" id="username" name="username" value="JohnDoe" />
<input type="email" id="email" name="email" value="john@example.com" />
<button type="submit">Submit</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function (event) {
event.preventDefault();
// 獲取單個字段值
const username = document.querySelector('#username').value;
const email = document.querySelector('#email').value;
console.log(`Username: ${username}`);
console.log(`Email: ${email}`);
});
</script>解釋
- 通過
querySelector獲取具體字段,并訪問其value。
方法 4:通過 URL 查詢參數(shù)形式獲取表單數(shù)據(jù)
可以將表單提交后的數(shù)據(jù)序列化成 URL 查詢字符串的形式。
示例代碼
<form id="myForm">
<input type="text" name="username" value="JohnDoe" />
<input type="email" name="email" value="john@example.com" />
<button type="submit">Submit</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function (event) {
event.preventDefault();
const formData = new FormData(this);
// 轉(zhuǎn)換為 URL 查詢參數(shù)
const queryString = new URLSearchParams(formData).toString();
console.log(queryString); // username=JohnDoe&email=john%40example.com
});
</script>解釋
URLSearchParams(formData):將表單數(shù)據(jù)轉(zhuǎn)換為查詢參數(shù)格式。.toString():生成 URL 查詢字符串。
方法 5:配合 AJAX 提交表單數(shù)據(jù)
通過 fetch 或 XMLHttpRequest 可以將表單數(shù)據(jù)異步提交到服務(wù)器。
示例代碼
<form id="myForm">
<input type="text" name="username" value="JohnDoe" />
<input type="email" name="email" value="john@example.com" />
<button type="submit">Submit</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function (event) {
event.preventDefault();
const formData = new FormData(this);
// 提交表單數(shù)據(jù)到服務(wù)器
fetch('/submit', {
method: 'POST',
body: formData,
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error('Error:', error));
});
</script>解釋
fetch('/submit', { method: 'POST', body: formData }):將表單數(shù)據(jù)發(fā)送到服務(wù)器。- 響應(yīng)結(jié)果可以通過
response.json()處理。
總結(jié)
- 簡單提取數(shù)據(jù):使用
FormData。 - 手動提取數(shù)據(jù):直接訪問
form.elements或querySelector。 - 序列化為查詢字符串:通過
URLSearchParams。 - 配合提交到服務(wù)器:結(jié)合
fetch或其他 AJAX 方法實現(xiàn)動態(tài)提交。
選擇方法取決于實際需求,例如是否需要動態(tài)處理、是否需要提交到服務(wù)器等。
到此這篇關(guān)于javaScript如何在表單提交的時候獲取到表單數(shù)據(jù)的文章就介紹到這了,更多相關(guān)javaScript表單提交獲取表單數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
原生javascript模仿win8等待提示圓圈進(jìn)度條
一直很中意win8等待提示圓圈進(jìn)度條,下面本文就使用原生javascript模仿win8等待進(jìn)度條,需要的朋友可以參考下2014-04-04
詳解JavaScript中Promise的原理與應(yīng)用
Promise是JavaScript中的一個重要概念,也是現(xiàn)代JavaScript開發(fā)中必不可少的一部分,本文主要介紹了Promise的實現(xiàn)原理、使用方法及常見應(yīng)用場景,需要的可以收藏一下2023-06-06
分析javascript中9 個常見錯誤阻礙你進(jìn)步
這篇文章主要介紹了分析javascript中9 個常見錯誤阻礙你進(jìn)步的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09

