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 相关文章推荐
多种方法实现load加载完成后把图片一次性显示出来
Feb 19 Javascript
Javascript玩转继承(一)
May 08 Javascript
js中的如何定位固定层的位置
Jun 15 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
jQuery实现checkbox全选的方法
Jun 10 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
Vue组件开发初探
Feb 14 Javascript
ES6中Array.find()和findIndex()函数的用法详解
Sep 16 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
Dec 06 Javascript
JS中原始值和引用值的储存方式示例详解
Mar 23 Javascript
node创建Vue项目步骤详解
Mar 06 Javascript
Vue脚手架编写试卷页面功能
Mar 17 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 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
微信支付开发告警通知实例
2016/07/12 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
一个简单的python程序实例(通讯录)
2013/11/29 Python
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
Python基础入门之seed()方法的使用
2015/05/15 Python
python实现井字棋游戏
2020/03/30 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
Python语法分析之字符串格式化
2019/06/13 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
python函数不定长参数使用方法解析
2019/12/14 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
给女朋友的道歉信
2014/01/10 职场文书
计算机网络专业求职信
2014/06/05 职场文书
鸟的天堂导游词
2015/01/31 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书