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实现定时刷新功能代码
May 09 jQuery
关于jQuery库冲突的完美解决办法
May 20 jQuery
最常用的jQuery表单验证(简单)
May 23 jQuery
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 jQuery
jquery图片预览插件实现方法详解
Jul 18 jQuery
jQuery实现鼠标移入显示蒙版效果
Jan 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
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
js验证上传图片的方法
2015/05/12 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
Python translator使用实例
2008/09/06 Python
使用python开发vim插件及心得分享
2014/11/04 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
应用数学自荐书范文
2013/11/24 职场文书
大学生村官承诺书
2014/03/28 职场文书
求职信模板
2014/05/23 职场文书
环保志愿者活动总结
2014/06/27 职场文书
教师个人成长总结
2015/02/11 职场文书
土建技术员岗位职责
2015/04/11 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL
Go语言测试库testify使用学习
2022/07/23 Golang