jquery將表單序列化json對象

 $.fn.serializeObject = function () {
            var obj = {};
            var count = 0;
            $.each(this.serializeArray(), function (i, o) {
                var n = o.name, v = o.value;
                count++;
                obj[n] = obj[n] === undefined ? v
                : $.isArray(obj[n]) ? obj[n].concat(v)
                : [obj[n], v];
            });
            //obj.nameCounts = count + "";//表單name個數
            return JSON.stringify(obj);
        };


調用示例:var serStr = $('#form1').serializeObject();

上面的插件,不能適用於有多個值的輸入控件,例如複選框、多選的select。下面,我將插件作進一步的修改,讓其支持多選。代碼以下:this

(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);  

歡迎你們加入QQ羣: 15129679 討論問題spa

實例下載插件

相關文章
相關標籤/搜索