jQuery实现form表单元素序列化为json对象的方法


Posted in Javascript onDecember 09, 2015

本文实例讲述了jQuery实现form表单元素序列化为json对象的方法。分享给大家供大家参考,具体如下:

这段代码序列化form表单元素为json对象:

<!Doctype html>
 <html xmlns=http://www.w3.org/1999/xhtml>
 <head>
 <title>jQuery扩展——form序列化到json对象</title>
 <meta http-equiv=Content-Type content="text/html;charset=utf-8">
 <script type="text/javascript" src="jquery-1.10.2.js"></script>
</head>
<body>
<p id="results"><b>Results:</b> </p>
<form>
 <select name="aModel.single">
 <option>Single</option>
 <option selected>Single2</option>
 </select>
 <br/><br/>
 <select name="aModel.multiple" multiple="multiple">
 <option selected="selected">Multiple</option>
 <option>Multiple2</option>
 <option selected="selected">Multiple3</option>
 </select>
 <br/><br/>
 <input type="checkbox" name="aModel.check" value="check1"/> check1
 <input type="checkbox" name="aModel.check" value="check2" checked="checked"/> check2
 <br/><br/>
 <input type="radio" name="aModel.radio" value="radio1" checked="checked"/> radio1
 <input type="radio" name="aModel.radio" value="radio2"/> radio2
</form>
<script type="text/javascript">
 var fields = $("select, :radio").serializeArray();
 var o={};
 jQuery.each(fields, function(i, fields){
  if(o[this.name]){
   /*
   表单中可能有多个相同标签,比如有多个label,
   那么你在json对象o中插入第一个label后,还要继续插入,
   那么这时候o[label]在o中就已经存在,所以你要把o[label]做嵌套数组处理
   */
   //如果o[label]不是嵌套在数组中
   if(!o[this.name].push){
    o[this.name]=[o[this.name]];  // 将o[label]初始为嵌套数组,如o={a,[a,b,c]}
   }
   o[this.name].push(this.value || ''); // 将值插入o[label]
  }else{
   o[this.name]=this.value || '';  // 第一次在o中插入o[label]
  }
 });
 $("#results").append(JSON.stringify(o));
 console.log(o); //用FireBug输出
</script>
</body>
</html>

结果如下图所示:

jQuery实现form表单元素序列化为json对象的方法

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 给汉字排序实例代码
Jun 28 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
May 23 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
Nov 08 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
用js制作淘宝放大镜效果
Oct 28 Javascript
JavaScript实现按键精灵的原理分析
Feb 21 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
vuejs使用axios异步访问时用get和post的实例讲解
Aug 09 Javascript
通过循环优化 JavaScript 程序
Jun 24 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 Javascript
js实现随机点名功能
Dec 23 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 #Javascript
深入浅析react native es6语法
Dec 09 #Javascript
JavaScript程序设计之JS调试
Dec 09 #Javascript
js实现的星星评分功能函数
Dec 09 #Javascript
JavaScript中的this到底是什么(一)
Dec 09 #Javascript
js实现的奥运倒计时时钟效果代码
Dec 09 #Javascript
完美实现bootstrap分页查询
Dec 09 #Javascript
You might like
PHP中实现crontab代码分享
2015/03/26 PHP
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python对url格式解析的方法
2015/05/13 Python
Python入门教程之if语句的用法
2015/05/14 Python
开始着手第一个Django项目
2015/07/15 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python实现二分查找算法
2017/09/21 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
车工岗位职责
2013/11/26 职场文书
财务工作者先进事迹材料
2014/01/17 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
党员个人承诺书
2015/04/27 职场文书
国庆节新闻稿
2015/07/17 职场文书
小学体育教学随笔
2015/08/14 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
总结高并发下Nginx性能如何优化
2021/11/01 Servers