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控制iframe滚动的代码
Apr 10 Javascript
JS Array对象入门分析
Oct 30 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
Mar 11 Javascript
node.js中的fs.createReadStream方法使用说明
Dec 17 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
Nov 19 Javascript
总结十个Angular.js由浅入深的面试问题
Aug 26 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
基于vue 实现token验证的实例代码
Dec 14 Javascript
JavaScript对象拷贝与赋值操作实例分析
Dec 10 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
Aug 27 Javascript
使用vue构建多页面应用的示例
Oct 22 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
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
PHP防盗链代码实例
2014/08/27 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
简单介绍Python中的struct模块
2015/04/28 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
四风存在的原因分析
2014/02/11 职场文书
活动总结怎么写啊
2014/05/07 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android