JavaScript 获取 Form 表单所有数据的通用方法

作者:半夏

时间:2026-10-30

浏览:140

本文介绍了一种通过 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 代码片段:

获取 Form 表单数据的通用方法

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

获取 Form 表单数据的通用方法

以上即为 JavaScript 获取 Form 表单所有数据的简单方法,供读者参考。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章