原生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 相关文章推荐
javascript 常用方法总结
Jun 03 Javascript
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
jquery 插件开发备注
Aug 27 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
May 23 Javascript
javascript变量作用域使用中常见错误总结
Mar 26 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
Vue进度条progressbar组件功能
Apr 17 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 Javascript
three.js显示中文字体与tween应用详析
Jan 04 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及Zend Engine的线程安全模型分析
2011/11/10 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
Javascript面向对象编程
2012/03/18 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
AngularJS入门之动画
2016/07/27 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
python读写二进制文件的方法
2015/05/09 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
python多线程使用方法实例详解
2019/12/30 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Python如何实现机器人聊天
2020/09/10 Python
优秀学生干部个人的自我评价
2013/10/04 职场文书
高中的职业生涯规划书
2013/12/28 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
工作后的感想
2015/08/07 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
Python道路车道线检测的实现
2021/06/27 Python
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android