jQuery序列化form表单数据为JSON对象的实现方法


Posted in jQuery onSeptember 20, 2018

 jquery提供的serialize方法能够实现。

$("#searchForm").serialize();

但是,观察输出的信息,发现serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。

serialize确实是能够解决一般的提交数据。但是有时我们需要的是一个object对象,而不是字符串(比如jqgrid reload时设置查询条件参数,就需要object对象)。

方法如下:

(function(window, $) {
  $.fn.serializeJson = function() {
    var serializeObj = {};
    var array = this.serializeArray();
    var str = this.serialize();
    $(array).each(
        function() {
          if (serializeObj[this.name]) {
            if ($.isArray(serializeObj[this.name])) {
              serializeObj[this.name].push(this.value);
            } else {
              serializeObj[this.name] = [
                  serializeObj[this.name], this.value ];
            }
          } else {
            serializeObj[this.name] = this.value;
          }
        });
    return serializeObj;
  };
})(window, jQuery);

调用:

console.info($("#searchForm").serializeJson());

下面通过一段代码看下jQuery序列化表单为JSON对象

<form id="myform"> 
  <table> 
    <tr> 
      <td>姓名:</td> 
      <td> <input type="text" name="name" /> </td> 
    </tr> 
    <tr> 
      <td>性别:</td> 
      <td> 
        <input type="radio" name="sex" value="1"> 男 
        <input type="radio" name="sex" value="0"> 女 
      </td> 
    </tr> 
    <tr> 
      <td>年龄:</td> 
      <td> 
        <select name="age"> 
          <option value="20">20</option> 
          <option value="21">21</option> 
          <option value="22">22</option> 
        </select> 
      </td> 
    </tr> 
    <tr> 
      <td>爱好</td> 
      <td> 
        <input type="checkbox" value="basketball" name="hobby">篮球 
        <input type="checkbox" value="volleyball" name="hobby">排球 
        <input type="checkbox" value="football" name="hobby">足球 
        <input type="checkbox" value="earth" name="hobby">地球 
      </td> 
    </tr> 
    <tr> 
      <td colspan="2"> 
        <input type="button" id="ajaxBtn" value="提交" /> 
      </td> 
    </tr> 
  </table> 
</form> 
 
<script type="text/javascript"> 
  $(function() { 
    $("#ajaxBtn").click(function() { 
        var params = $("#myform").serializeObject(); //将表单序列化为JSON对象  
        console.info(params); 
      }) 
  }) 
  $.fn.serializeObject = function() { 
    var o = {}; 
    var a = this.serializeArray(); 
    $.each(a, function() { 
      if (o[this.name]) { 
        if (!o[this.name].push) { 
          o[this.name] = [ o[this.name] ]; 
        } 
        o[this.name].push(this.value || ''); 
      } else { 
        o[this.name] = this.value || ''; 
      } 
    }); 
    return o; 
  } 
</script>

上述serializeObject方法是将form序列化为JSON对象

总结

以上所述是小编给大家介绍的jQuery序列化form表单数据为JSON对象的实现方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
Mar 23 jQuery
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
jQuery tip提示插件(实例分享)
Apr 28 jQuery
jquery Form轻松实现文件上传
May 24 jQuery
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
jquery中有哪些api jQuery主要API
Nov 20 jQuery
关于jquery layui弹出层的使用方法
Apr 21 jQuery
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 jQuery
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
jQuery pjax 应用简单示例
Sep 20 #jQuery
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 #jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 #jQuery
jQuery使用each遍历循环的方法
Sep 19 #jQuery
jquery 动态遍历select 赋值的实例
Sep 12 #jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 #jQuery
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 #jQuery
You might like
PHP序列化操作方法分析
2016/09/28 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
Javascript 二维数组
2009/11/26 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
python列表与元组详解实例
2013/11/01 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
个人求职简历的自我评价范文
2013/10/09 职场文书
办公室主任岗位职责
2013/11/08 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
教师教学评估方案
2014/05/09 职场文书
2014高考励志标语
2014/06/05 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
Python基础之进程详解
2021/05/21 Python