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的Ajax方法使用详解
Aug 16 jQuery
基于jQuery的表单填充实例
Aug 22 jQuery
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
jquery.picsign图片标注组件实例详解
Feb 02 jQuery
jQuery替换节点元素的操作方法
Mar 18 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 jQuery
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 jQuery
jquery层次选择器的介绍
Jan 18 jQuery
jQuery位置选择器用法实例分析
Jun 28 jQuery
jquery实现的放大镜效果示例
Feb 24 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
如何对PHP程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
PHP精确计算功能示例
2016/11/29 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
accesskey 提交
2006/06/26 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
python3.x实现发送邮件功能
2018/05/22 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
中国文明网签名寄语
2014/01/18 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
班级标语大全
2014/06/21 职场文书
同学聚会感言一句话
2015/07/30 职场文书