在工作中经常要将表单数据通过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();
返回的结果如下图: