原生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 相关文章推荐
JQuery的$命名冲突详细解析
Dec 28 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 Javascript
JavaScript替换当前页面的方法
Apr 03 Javascript
js图片轮播手动切换效果
Nov 10 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
AngularJS用户选择器指令实例分析
Nov 04 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
Mar 09 Javascript
实例分析编写vue组件方法
Feb 12 Javascript
Angular封装搜索框组件操作示例
Apr 25 Javascript
vue axios post发送复杂对象问题
Jun 04 Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 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
搜索引擎技术核心揭密
2006/10/09 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
js的2种继承方式详解
2014/03/04 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
JS验证码实现代码
2017/09/14 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
煤矿机修工岗位职责
2014/02/07 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
2015年幼师工作总结
2015/04/28 职场文书
办公用品质量保证书
2015/05/11 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书