(function($) { //JQuery的自定义方法,将form表单封装成js对象{key1:v1,key2:v2.....}模式,过滤掉空串,使用json数据格式提交,需要JSON.stringify(O)将js对象转成json字符串 $.fn.extend({ serializeObject : function(isNotNull) { // 是否过滤空值 var o = {}; var a = this.serializeArray(); //jquery方法,将表单数据序列化成[{name:key,value:v},{name:key,value:v}..]模式 $.each(a, function() { if (o[this.name]) { // 表单中name属性相同的,值将组成数组{key1:v1,key2:[v21,v22..].....} if (!o[this.name].push) { o[this.name] = [ o[this.name] ]; } /// o[this.name].push(this.value || ''); if(isNotNull){ if(this.value.trim() != ''){ o[this.name].push(this.value.trim()); } }else{ o[this.name].push(this.value.trim() || ''); } } else { if(isNotNull){ if(this.value.trim() != ''){ o[this.name] = this.value.trim(); } }else{ o[this.name] = this.value.trim(); } } }); return o; } }); })(jQuery); var data = $("#formId").serializeObject(true);
另注:jQuery 的 serialize() 方法,将表单序列化成:key1=v1&key2=v21&key2=v22 这种模式,表单name属性相同的直接加上。