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中map函数的两种方式
Apr 07 jQuery
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
jQuery操作css样式
May 15 jQuery
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 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安装攻略:常见问题解答(一)
2006/10/09 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
说一说Python logging
2016/04/15 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
金鑫耀Java笔试题
2014/09/06 面试题
人力资源经理自我评价
2014/01/04 职场文书
婚礼证婚人证婚词
2014/01/13 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
高考升学宴答谢词
2015/01/20 职场文书
公司承诺函范文
2015/01/21 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫