原生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对数字的格式化使用说明
Jan 12 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
Dec 23 Javascript
详解JavaScript基于面向对象之创建对象(1)
Dec 10 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
Dec 23 Javascript
封装好的javascript前端分页插件pagination
Jan 04 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
requirejs + vue 项目搭建详解
Jun 16 Javascript
利用纯JS实现像素逐渐显示的方法示例
Aug 14 Javascript
React Native模块之Permissions权限申请的实例相机
Sep 28 Javascript
vue-router相关基础知识及工作原理
Mar 16 Javascript
js实现数字滚动特效
Dec 16 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语法(5)
2006/10/09 PHP
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php文件上传简单实现方法
2015/01/24 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
javascript每日必学之继承
2016/02/23 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
Python文件操作基本流程代码实例
2017/12/11 Python
Python KMeans聚类问题分析
2018/02/23 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
英语专业推荐信
2013/11/16 职场文书
出国考察邀请函
2014/01/21 职场文书
高中体育教学反思
2014/01/29 职场文书
大学活动总结范文
2014/04/29 职场文书
2014年英语工作总结
2014/12/20 职场文书
学前教育见习总结
2015/06/23 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书