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插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
jquery DataTable实现前后台动态分页
Jun 17 jQuery
jQuery实现广告条滚动效果
Aug 22 jQuery
React中jquery引用的实现方法
Sep 12 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
Feb 15 jQuery
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 jQuery
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
详解jquery和vue对比
Apr 16 jQuery
jQuery实现轮播图效果
Nov 26 jQuery
jQuery实现朋友圈查看图片
Sep 11 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 ajax 分页类代码
2008/11/13 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
php开发环境配置记录
2011/01/14 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
php操作access数据库的方法详解
2017/02/22 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
Python发送Email方法实例
2014/08/21 Python
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
详解python编译器和解释器的区别
2019/06/24 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
比利时家具购买网站:Home24
2019/01/03 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
招商业务员岗位职责
2013/12/16 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书