JavaScript 获取 Form 表单所有数据的通用方法
作者:半夏时间:2026-10-30 12:22:42浏览:139
本文介绍了一种通过 JavaScript 获取 HTML Form 表单所有数据的通用方法。该方法封装了遍历表单元素、处理不同输入类型(文本、单选、复选、隐藏域)的逻辑,并将数据序列化为 URL 查询字符串格式(如 key=value&key2=value2)。代码可直接复用,适用于 GET 和 POST 请求的数据收集场景,有助于提高前端开发效率。
获取 Form 表单数据的通用方法
在 HTML 页面中,有时需要通过 JavaScript 获取通过 GET 或 POST 方法(即 URL 后附加 ?a=b&c=d 等形式)传递的表单数据。
针对常见的表单数据获取需求,许多开发者往往重复编写类似的代码。本文提供的代码可作为公共方法直接调用,旨在提升开发效率。
相关 JavaScript 代码实现如下:
<script type="text/javascript">
//获取指定form中的所有的<input>对象
function getElements(formId) {
var form = document.getElementById(formId);
var elements = new Array();
var tagElements = form.getElementsByTagName('input');
for (var j = 0; j < tagElements.length; j++){
elements.push(tagElements[j]);
}
return elements;
}
//获取单个input中的【name,value】数组
function inputSelector(element) {
if (element.checked)
return [element.name, element.value];
}
function input(element) {
switch (element.type.toLowerCase()) {
case 'submit':
case 'hidden':
case 'password':
case 'text':
return [element.name, element.value];
case 'checkbox':
case 'radio':
return inputSelector(element);
}
return false;
}
//组合URL
function serializeElement(element) {
var method = element.tagName.toLowerCase();
var parameter = input(element);
if (parameter) {
var key = encodeURIComponent(parameter[0]);
if (key.length == 0) return;
if (parameter[1].constructor != Array)
parameter[1] = [parameter[1]];
var values = parameter[1];
var results = [];
for (var i=0; i<values.length; i++) {
results.push(key + '=' + encodeURIComponent(values[i]));
}
return results.join('&');
}
}
//调用方法
function serializeForm(formId) {
var elements = getElements(formId);
var queryComponents = new Array();
for (var i = 0; i < elements.length; i++) {
var queryComponent = serializeElement(elements[i]);
if (queryComponent)
queryComponents.push(queryComponent);
}
return queryComponents.join('&');
}
</script>
调用该方法的示例代码如下:
function getFormInfo(){
var params = serializeForm('login');
alert(params);
}
对应的 HTML 表单结构示例如下:
<body>
<form id="login" name="login" method="post" action="result.jsp">
<input name="user" type="text"/>
<input name="sex" type="radio" value="man"/>
<input name="sex" type="radio" value="woman"/>
interest:<input type="checkbox" name="interest" value="piu">PIU <input type="checkbox" name="interest" value="dss">DSS <input type="checkbox" name="interest" value="ddr">DDR<br>
<input type="hidden" name="from" value="welcome"><br>
<input type="button" name="submit" value="submit" onclick="getFormInfo();">
</form>
</body>
HTML 代码片段:

生成的 URL 查询字符串示例:

以上即为 JavaScript 获取 Form 表单所有数据的简单方法,供读者参考。
作者最新文章
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
