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 笔记二 Array和Date对象方法
May 22 Javascript
IE下JS读取xml文件示例代码
Aug 05 Javascript
JS实现霓虹灯文字效果的方法
Aug 06 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
Jan 24 Javascript
ajax跨域调用webservice的实现代码
May 09 Javascript
javascript函数中的3个高级技巧
Sep 22 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
Apr 14 Javascript
利用pm2部署多个node.js项目的配置教程
Oct 22 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
Apr 15 Javascript
JS删除String里某个字符的方法
Jan 06 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通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
python中字典(Dictionary)用法实例详解
2015/05/30 Python
python中偏函数partial用法实例分析
2015/07/08 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
python 利用turtle模块画出没有角的方格
2019/11/23 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
python中的对数log函数表示及用法
2020/12/09 Python
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
生产内勤岗位职责
2013/12/07 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
2015年女工委工作总结
2015/07/27 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
MySQL 开窗函数
2022/02/15 MySQL