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.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
jquery.validate表单验证插件使用详解
Jun 21 jQuery
JQuery判断正整数整理小结
Aug 21 jQuery
jQuery使用zTree插件实现可拖拽的树示例
Sep 23 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
Jquery Datatables的使用详解
Jan 30 jQuery
jQuery实现图片切换效果
Oct 19 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP输入流php://input介绍
2012/09/18 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
Vue组件开发初探
2017/02/14 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python从sqlite读取并显示数据的方法
2015/05/08 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
python__new__内置静态方法使用解析
2020/01/07 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
Python unittest框架操作实例解析
2020/04/13 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
集团薪酬管理制度
2014/01/13 职场文书
公开服务承诺制度
2014/03/26 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
干部考察材料范文
2014/12/24 职场文书
项目经理岗位职责
2015/01/31 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript