原生js实现form表单序列化的方法


Posted in Javascript onAugust 02, 2018

当我们有form表单而且里面的表单元素较多时,咱们总不能一个个去获取表单元素内的值来进行拼接吧!这样会很让人蛋疼!为了方便与后台交互并且提高自己的开发效率,并且不让你蛋疼;我们一起用原生来写一个表单序列化方法:

先介绍一下jquery中有相应的表单序列化的方法:

1.serialize()方法

格式:var data = $("form").serialize();

功能:将表单内容序列化成一个字符串。

这样在ajax提交表单数据时,就不用一一列举出每一个参数。只需将data参数设置为 $("form").serialize() 即可。

2.serializeArray()方法

格式:var jsonData = $("form").serializeArray();

功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。

比如,[{"name":"lihui", "age":"20"},{...}] 获取数据为 jsonData[0].name;

下面我们用原声js来实现我们的form表单序列化的函数;

首先我们列明步骤:

1)先获取form表单使用ById或者是forms;

2)获取后通过elements 取到表单中所有元素的数组;

3)之后进行遍历判断类型(根据类型做相应的对象拼接)实现序列化对象;

代码如下:

function formser(form){
 var form=document.getElementById(form);
 var arr={};
 for (var i = 0; i < form.elements.length; i++) {
 var feled=form.elements[i];
 switch(feled.type) {
 case undefined:
 case 'button':
 case 'file':
 case 'reset':
 case 'submit':
 break;
 case 'checkbox':
 case 'radio':
 if (!feled.checked) {
 break;
 }
 default:
 if (arr[feled.name]) {
 arr[feled.name]=arr[feled.name]+','+feled.value;
 }else{
 arr[feled.name]=feled.value;
 
 } 
 }
 }
 return arr
 },

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
7个JS基础知识总结
Mar 05 Javascript
jquery如何判断表格同一列不同行input数据是否重复
May 14 Javascript
js中string转int把String类型转化成int类型
Aug 13 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
jQuery 重复加载错误以及修复方法
Dec 16 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
Jul 06 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
Dec 07 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
详解Vue整合axios的实例代码
Jun 21 Javascript
node.js事件轮询机制原理知识点
Dec 22 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
Mar 31 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
Aug 02 #Javascript
详解vue指令与$nextTick 操作DOM的不同之处
Aug 02 #Javascript
vue组件挂载到全局方法的示例代码
Aug 02 #Javascript
原生js封装的ajax方法示例
Aug 02 #Javascript
JS实现根据指定值删除数组中的元素操作示例
Aug 02 #Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 #Javascript
JavaScript防止全局变量污染的方法总结
Aug 02 #Javascript
You might like
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
php中__toString()方法用法示例
2016/12/07 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Cython 三分钟入门教程
2009/09/17 Python
python简单实现计算过期时间的方法
2015/06/09 Python
Python中常见的数据类型小结
2015/08/29 Python
python和shell获取文本内容的方法
2018/06/05 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
彻底理解Python中的yield关键字
2019/04/01 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
python操作toml文件的示例代码
2020/11/27 Python
基于HTML5+tracking.js实现刷脸支付功能
2020/04/16 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
医院辞职信范文
2014/01/17 职场文书
王老吉广告词
2014/03/20 职场文书
大学新生军训方案
2014/05/03 职场文书
酒店节能减排方案
2014/05/26 职场文书
教师见习报告范文
2014/11/03 职场文书
优秀教师推荐材料
2014/12/16 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS