1. 程式人生 > >一個表單同時提交多條記錄

一個表單同時提交多條記錄

//將表單序列化成json格式的資料(但不適用於含有控制元件的表單,例如複選框、多選的select) (function($){ $.fn.serializeJson = function(){ var jsonData1 = {}; var serializeArray = this.serializeArray(); // 先轉換成{"id": ["12","14"], "name": ["aaa","bbb"], "pwd":["pwd1","pwd2"]}這種形式
$(serializeArray).each(function () { if (jsonData1[this.name]) { if ($.isArray(jsonData1[this.name])) { jsonData1[this.name].push(this.value); } else { jsonData1[this
.name] = [jsonData1[this.name], this.value]; } } else { jsonData1[this.name] = this.value; } }); // 再轉成[{"id": "12", "name": "aaa", "pwd":"pwd1"},{"id": "14", "name": "bb", "pwd":"pwd2"}]的形式
var vCount = 0; // 計算json內部的陣列最大長度 for(var item in jsonData1){ var tmp = $.isArray(jsonData1[item]) ? jsonData1[item].length : 1; vCount = (tmp > vCount) ? tmp : vCount; } if(vCount > 1) { var jsonData2 = new Array(); for(var i = 0; i < vCount; i++){ var jsonObj = {}; for(var item in jsonData1) { jsonObj[item] = jsonData1[item][i]; } jsonData2.push(jsonObj); } return JSON.stringify(jsonData2); }else{ return "[" + JSON.stringify(jsonData1) + "]"; } }; })(jQuery); function submitUserList_4() {alert("ok"); var jsonStr = $("#form1").serializeJson(); //console.log("jsonStr:\r\n" + jsonStr); //alert(jsonStr); $.ajax({ url: "/user/submitUserList_4", type: "POST", contentType : 'application/json;charset=utf-8', //設定請求頭資訊 dataType:"json", data: jsonStr, success: function(data){ alert(data); }, error: function(res){ alert(res.responseText); } }); }