標籤:htm color for input 後台 splay 結構 技術交流 info
有時候我們後台做了一個參考型別例如:下面的實體以C#為例
public class Order{ public string orderId{get;set;} public OrderItem orderItem{get;set;}}public class OrderItem{ public string productName{get;set;}
public decimal price{get;set;} }
前台頁面的html結構:
<form id="form1"> <input type="text" name="productName" value="milk" /> <input type="text" name="price" value="1.43" /> <input type="submit" name="submit" value="submit" /></form>
後台在擷取OrderItem的時候我們期望提交的資料格式是
{orderItem.productName:"",orderItem.price:""}
首先我們先回收表單的資料這裡給一jquery的外掛程式
;(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);
View Code
var formParam=$("#form1").serializeJson();console.log(JSON.stringify(formParam))
控制台輸出{"orderItem":{"productName":"milk","price":"1.45"}}然後我們思考 orderItem.productName 肯定是對象的子物件才能用.操作符例如{"UserInfo":{"clsName":"one","name":"li yang"}} 訪問UserInfo的name屬性就可以用UserInfo.name好了得到瞭解決思路了
var formParam=$("#form1").serializeJson();console.log(JSON.stringify(formParam))console.log($.param(formParam))
控制台輸出:{"orderItem":{"productName":"milk","price":1.43}}orderItem%5BproductName%5D=milk&orderItem%5Bprice%5D=1.43
如果您有更好的解決方案歡迎留言討論或者加入下面的QQ群來交流討論
技術交流QQ群:15129679
給ajax表單提交資料前面加上實體名稱