給ajax表單提交資料前面加上實體名稱

來源:互聯網
上載者:User

標籤: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表單提交資料前面加上實體名稱

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.