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 相关文章推荐
IE中createElement需要注意的一个问题
Jul 13 Javascript
js字符编码函数区别分析
Dec 28 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
Jun 14 Javascript
jQuery中[attribute]选择器用法实例
Dec 31 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 Javascript
angular2倒计时组件使用详解
Jan 12 Javascript
微信小程序实现MUI数字输入框效果
Jan 31 Javascript
Vue如何实现响应式系统
Jul 11 Javascript
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
jQuery实现购物车全功能
Jan 11 jQuery
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
日本十大惊悚动漫
2020/03/04 日漫
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
用Python编写web API的教程
2015/04/30 Python
Python的语言类型(详解)
2017/06/24 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
用 python 进行微信好友信息分析
2020/11/28 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
酒店人事专员岗位职责
2013/12/19 职场文书
总会计师岗位职责
2014/02/19 职场文书
2014年营业员工作总结
2014/11/18 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
jquery插件实现搜索历史
2021/04/24 jQuery
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android