在工作中经常要将表单数据通过ajax提交,所以需要将表单序列化为json对象.
已经有大神提供了,以前一直百度,现在决定抄过来收藏一下,方便以后自己用,尊重原创,文章转载自:http://www.cnblogs.com/yeminglong/p/3799282.html
jquery提供的serialize方法能够实现。
$("#searchForm").serialize();
但是serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。序列化结果如下:
serialize能够解决简单的数据提交。但是有时我们需要用一个json对象提交数据,这样的话需要一个能将表单数据转为json对象的方法,如下:
(function($){ $.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; }; })(jQuery);
将以上代码粘到你的js中,然后调用这个方法就可以,如下
$("#searchForm").serializeJson();
返回的结果如下图: