当我们有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
},

最新文章

  1. 使用Git的Push出现rejected - non-fast-forward错误
  2. 使用WWW获取本地文件夹的XML配置文件
  3. (转)Android 系统属性SystemProperty分析
  4. 用 Fabric 实现自动化部署
  5. 数据存储--sqlite总结
  6. IPC机制--Binder
  7. js实现表格中不同单元格内容的替换(不同浏览器的节点属性兼容问题)
  8. maven的简单安装与配置
  9. Python学习教程(learning Python)--1.2.2 Python格式化输出基础
  10. android中实现Parcelable序列化步骤
  11. Design Pattern——开放封闭原则
  12. 考试模块 - ERP数据流
  13. AIX 命令
  14. Spring boot 发送邮件示例
  15. java类型转化
  16. c/c++ 网络编程 UDP 发送端 bind 作用
  17. pl/sql实现打印九九乘法表
  18. 关于var time = +new Date;
  19. 初学HTML-6
  20. Socket网络编程--聊天程序(5)

热门文章

  1. Ubuntu+XAMPP+Wordpress的安装与配置问题
  2. 楼控-西门子-PPM设置及接线教程
  3. 洛谷—— P1962 斐波那契数列
  4. Git用&lt;&lt;&lt;&lt;&lt;&lt;&lt;,=======,&gt;&gt;&gt;&gt;&gt;&gt;&gt;标记出不同分支的内容
  5. 使用美橙主机建站(jsp+mysql+tomcat建站)
  6. linux下图片转换工具[【转】
  7. HDU1412 {A} + {B}
  8. JVM概论
  9. [hihocoder][Offer收割]编程练习赛44
  10. React 16 服务端渲染的新特性