原生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 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
Javascript结合css实现网页换肤功能
Nov 02 Javascript
JS俄罗斯方块,包含完整的设计理念
Dec 11 Javascript
jquery插件推荐浏览器嗅探userAgent
Nov 09 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
jQuery 判断元素整理汇总
Feb 28 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
对angularJs中2种自定义服务的实例讲解
Sep 30 Javascript
原生js实现抽奖小游戏
Jun 27 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
Sep 24 Javascript
详解node和ES6的模块导出与导入
Feb 19 Javascript
JavaScript 定时器详情
Nov 11 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
Python的Django框架中if标签的相关使用
2015/07/15 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python样条插值的实现代码
2018/12/17 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
Python创建自己的加密货币的示例
2021/03/01 Python
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
计算机毕业大学生推荐信
2013/12/01 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
实习协议书
2015/01/27 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
JavaScript执行机制详细介绍
2021/12/06 Javascript