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的几种方法
Oct 23 Javascript
javascript写的一个链表实现代码
Oct 25 Javascript
intro.js 页面引导简单用法 分享
Aug 06 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
jquery日历插件e-calendar升级版
Nov 10 Javascript
Node.js中的http请求客户端示例(request client)
May 04 Javascript
用angular实现多选按钮的全选与反选实例代码
May 23 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
基于vue中keep-alive缓存问题的解决方法
Sep 21 Javascript
微信小程序自定义导航栏实例代码
Apr 05 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
UTF-8正则表达式如何匹配汉字
2015/08/03 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
微信跳一跳python代码实现
2018/01/05 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
python可视化text()函数使用详解
2020/02/11 Python
python suds访问webservice服务实现
2020/06/26 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
法国房车租赁网站:Yescapa
2019/08/26 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
幼儿园教师工作制度
2014/01/22 职场文书
学习雷锋活动总结
2014/04/29 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
2014年团总支工作总结
2014/11/21 职场文书
三八妇女节寄语
2015/02/27 职场文书
刑事法律意见书
2015/06/04 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python