在HTML中用js获取通过GET、POST方法(就是在网址后加?a=b&c=d之类)传过来的表单值

本文介绍如何使用JavaScript获取指定表单中的所有输入元素,并将其序列化为URL参数,实现表单数据的高效收集与传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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); 

 

 

<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> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值