jquery将serializeArray转为可用的json对象
在jquery的serializeArray() 方法中,得到的结果为N个小对象组成的数组中,形式大概为:
所以无法方便使用ajax来进行处理,需要对其进行遍历操作放入一个对象中:
(function($){
$.fn.serializeJson=function(){var serializeObj={};
$(this.serializeArray()).each(function(){
serializeObj[this.name]=this.value;
});
return serializeObj;
};
})(jQuery);
如果有checkbox的多选框需要传递过去,则需要进行改造:
(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);