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 获取Listbox选择的值的代码
Apr 15 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
JS自动适应的图片弹窗实例
Jun 29 Javascript
js 获取radio按钮值的实例
Aug 17 Javascript
JS中Date日期函数中的参数使用介绍
Jan 02 Javascript
javaScript 逻辑运算符使用技巧整理
May 03 Javascript
深入理解ES6之数据解构的用法
Jan 13 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
Nov 30 Javascript
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
详解javascript设计模式三:代理模式
Mar 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP学习笔记之session
2018/05/06 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
Python版的文曲星猜数字游戏代码
2013/09/02 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
python绘制玫瑰的实现代码
2020/03/02 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
经典的班主任推荐信
2013/10/28 职场文书
中学生家长评语大全
2014/04/16 职场文书
业务员自荐信范文
2014/04/20 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
党员群众路线承诺书
2014/05/20 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers