jquery将表单序列化

在工作中经常要将表单数据通过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();

返回的结果如下图:

猜你喜欢

转载自www.cnblogs.com/huaixiaonian/p/9857170.html