原生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 AJAX 框架的使用方法
Nov 03 Javascript
jQuery-ui中自动完成实现方法
Jun 10 Javascript
Javascript 自适应高度的Tab选项卡
Apr 05 Javascript
JS基于面向对象实现的放烟花效果
May 07 Javascript
jquery.cookie实现的客户端购物车操作实例
Dec 24 Javascript
vue.js学习之递归组件
Dec 13 Javascript
详解Vue中使用Echarts的两种方式
Jul 03 Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
Apr 20 Javascript
node.js +mongdb实现登录功能
Jun 18 Javascript
Vue实现移动端拖拽交换位置
Jul 29 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
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
script标签属性用type还是language
2015/01/21 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
JS实现多功能计算器
2020/10/28 Javascript
Python3内置模块之base64编解码方法详解
2019/07/13 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
中学运动会广播稿
2014/01/19 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
百日安全生产活动总结
2014/07/05 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
旷工辞退通知书
2015/04/17 职场文书
用python实现监控视频人数统计
2021/05/21 Python
MySQL普通表如何转换成分区表
2022/05/30 MySQL