(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屬性相同的直接加上。