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中实现PHP的打乱数组函数shuffle实例
Oct 11 Javascript
jQuery中append()方法用法实例
Dec 25 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
Mar 05 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
BootStrap3学习笔记(一)之网格系统
May 20 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
JavaScript实现的浏览器下载文件的方法
Aug 09 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
Oct 12 Javascript
微信小程序实现左滑动删除效果
Mar 30 Javascript
Vue 实现把表单form数据 转化成json格式的数据
Oct 29 Javascript
vue 清空input标签 中file的值操作
Jul 21 Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 10 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
JAVA/JSP学习系列之七
2006/10/09 PHP
PHP 开发环境配置(Zend Server安装)
2010/04/28 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
python实现简单的TCP代理服务器
2014/10/08 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
土木工程专业大学毕业生求职信
2013/10/13 职场文书
收款委托书范本
2014/09/11 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技