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 相关文章推荐
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
Mar 24 Javascript
鼠标经过的文本框textbox变色
May 21 Javascript
jQuery的三种$()
Dec 30 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
Aug 18 Javascript
javascript实现checkBox的全选,反选与赋值
Mar 12 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
Jun 23 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 Javascript
100行代码理解和分析vue2.0响应式架构
Mar 09 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
Nov 26 Javascript
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
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实现WEB动态网页静态
2006/10/09 PHP
php创建sprite
2014/02/11 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
puppeteer库入门初探
2019/01/09 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
RC4文件加密的python实现方法
2015/06/30 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
python如何查看安装了的模块
2020/06/23 Python
python中如何写类
2020/06/29 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
Python中pass的作用与使用教程
2020/11/13 Python
python3处理word文档实例分析
2020/12/01 Python
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
采购文员岗位职责
2013/11/20 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
市场安全管理制度
2014/01/26 职场文书
综艺节目策划方案
2014/06/13 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
2015年财政局工作总结
2015/05/21 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python