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 相关文章推荐
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 Javascript
js 获取浏览器高度和宽度值(多浏览器)
Sep 02 Javascript
jquery如何根据值设置默认的选中项
Mar 17 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
Jun 12 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
angularjs 源码解析之scope
Aug 22 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
vuex操作state对象的实例代码
Apr 25 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
Vue实现简易计算器
Feb 25 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
python实现电子产品商店
2019/02/26 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
交通法规咨询中心工作职责
2013/11/27 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
技能比赛获奖感言
2014/02/14 职场文书
大专生求职信
2014/06/29 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript