/** * 獲取table表格的數據項. */ function getTableData(tableId){ var data = "{"; //定義數據變量 $("#" + tableId).find("input, select").each(function(){//遍歷表格中的input、select等標籤 if($(this).attr("id")){ //若是此標籤設置了id,則取出其中數據 data += "\"" + $(this).attr("id") + "\":\"" + $(this).val() + "\","; //拼接id和數據 } }); if(data.length != 1){ //若是取出了數據,刪除多餘的符號 data = data.substring(0, data.length-1); //刪除多餘的符號',' } data += "}"; //添加結束符 data = eval("(" + data + ")"); //將數據轉換成json對象 return data; //返回數據 }
樓下有人指出能夠直接經過表單序列化/元素序列化獲取數據,jquery的serialize()方法便可。
此方法返回的是相似url參數格式的字符串:"a=1&b=2&c=3"。此方法既能夠對整個表單form進行序列化取值,也能夠經過元素來序列化
即:$("#formId").serialize();或者$("input").serialize();jquery
/************************************************2016-04-07更新***************************************************/json
工做時間長了,來更新下如今使用的方法this
//表單轉對象 $.fn.form2object = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (this.value) { o[this.name] = this.value; } }); return o; }; //對象轉表單 $.fn.object2form = function (obj) { for (var key in obj) { $(this).find("input[name='" + key + "']").val(obj[key]); $(this).find("textarea[name='" + key + "']").val(obj[key]); $(this).find("select[name='" + key + "']").val(obj[key]); } }; //將數據顯示到form表單 $("xxxform").object2form(data); //從form表單獲取數據 var data = $("xxxform").form2object();