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。下面,我将插件做进一步的修改,让其支持多选。代码如下:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值