原生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写法
Sep 15 Javascript
input按钮的事件处理大全
Dec 10 Javascript
使用js实现数据格式化
Dec 03 Javascript
JavaScript与jQuery实现的闪烁输入效果
Feb 18 Javascript
JS简单设置下拉选择框默认值的方法
Aug 20 Javascript
H5移动端适配 Flexible方案
Oct 24 Javascript
基于MVC方式实现三级联动(JavaScript)
Jan 23 Javascript
JavaScript字符串_动力节点Java学院整理
Jun 27 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
vue 实现一个简单的全局调用弹窗案例
Sep 10 Javascript
原生JavaScript实现购物车
Jan 10 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
php继承的一个应用
2011/09/06 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
D3.js实现饼状图的方法详解
2016/09/21 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
布同自制Python函数帮助查询小工具
2011/03/13 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
python如何快速生成时间戳
2020/07/21 Python
python tqdm库的使用
2020/11/30 Python
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
专科应届生求职信
2013/11/24 职场文书
工业学校毕业生自荐信范文
2014/01/03 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
2016教师国培研修感言
2015/12/08 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
教你一步步实现一个简易promise
2021/11/02 Javascript
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android