原生js实现获取form表单数据代码实例


Posted in Javascript onMarch 27, 2019

本文实例为大家分享了原生js实现获取form表单数据的具体代码,供大家参考,具体内容如下

//获取指定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]); 
  } 
  var tagElements = form.getElementsByTagName('select'); 
  for (var j = 0; j < tagElements.length; j++){ 
    elements.push(tagElements[j]); 
  } 
  var tagElements = form.getElementsByTagName('textarea'); 
  for (var j = 0; j < tagElements.length; j++){ 
    elements.push(tagElements[j]); 
  }
  return elements; 
} 
//组合URL 
function serializeElement(element) { 
  var method = element.tagName.toLowerCase(); 
  var parameter; 
  if(method == 'select'){
    parameter = [element.name, element.value]; 
  }
  switch (element.type.toLowerCase()) { 
    case 'submit': 
    case 'hidden': 
    case 'password': 
    case 'text':
    case 'date':
    case 'textarea': 
       parameter = [element.name, element.value];
       break;
    case 'checkbox': 
    case 'radio': 
      if (element.checked){
        parameter = [element.name, element.value]; 
      }
      break;    
  } 
  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('&'); 
}

最后通过serializeForm(formId);输入form的id名称即可实现,返回数据为

id=1&title=%E6%B4%BB%E5%8A%A8&time=2017-07-10&status=1&importance=0&desc=%E5%9C%A8%E4%BA%8C%E6%A5%BC%E5%8A%9E%E5%85%AC%E5%AE%A4%E5%BC%80%E4%BC%9A%EF%BC%8C%E4%B8%80%E7%82%B9%E9%92%9F

以上所述是小编给大家介绍的原生js实现获取form表单数据详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
自适应图片大小的弹出窗口
Jul 27 Javascript
JavaScript中的类继承
Nov 25 Javascript
javascript操作css属性
Dec 30 Javascript
jQuery中常用的遍历函数用法实例总结
Sep 01 Javascript
JS组件Bootstrap Table使用方法详解
Feb 02 Javascript
JavaScript获取IP获取的是IPV6 如何校验
Jun 12 Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 Javascript
webpack4之SplitChunksPlugin使用指南
Jun 12 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
Aug 26 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
JQueryDOM之样式操作
Mar 27 #jQuery
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
Mar 27 #Javascript
Node.js 多线程完全指南总结
Mar 27 #Javascript
浅谈JS和jQuery的区别
Mar 27 #jQuery
Nginx设置为Node.js的前端服务器方法总结
Mar 27 #Javascript
Node.js使用supervisor进行开发中调试的方法
Mar 26 #Javascript
详解vue在项目中使用百度地图
Mar 26 #Javascript
You might like
php合并js请求的例子
2013/11/01 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
PHP图片水印类的封装
2017/07/06 PHP
JavaScript 函数式编程的原理
2009/10/16 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
python实现的jpg格式图片修复代码
2015/04/21 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Python实现序列化及csv文件读取
2020/01/19 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
黄金酒广告词
2014/03/21 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
学位证书委托书
2014/09/30 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
研究生导师评语
2014/12/31 职场文书
在职证明书模板
2015/06/15 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫