jQuery ajax中serialize()方法增加其他參數


表單提交

使用jQuery.ajax()進行表單提交時,需要傳遞參數,最直接的方法便是使用Form的serializa()將表單序列化,前提只是將Form表單中的name屬性與數據庫的字段名保持一致便可;但如果遇到再次往其中增加參數的狀況呢,我們該如何處理?

First:

其實,jQuery ajax的serialize() 方法是將表單序列化為鍵值對(key1=value1&key2=value2…)后提交,使用標准的 URL-encoded 編碼表示文本字符串,而jQuery ajax-param()方法也是將其序列化一個 key/value 對象,如:

var params = { width:1900, height:1200 };
var str = jQuery.param(params);
$("#results").text(str);

  結果為:

width=1680&height=1050

  恰好兩者轉換的形式一樣,於是在serialize()中想要增加其他參數的時候,就可以:

jQuery.post(url, $.param({aa:'aa1',bb:'bb'})+'&'+jQuery('#fm').serialize(), function (result) {
 ...
}

於是傳到后台的參數中,除過form表單中的含有name屬性的字段外,就額外增加了aa以及bb兩個參數,我們的問題也便迎刃而解了!

Second:

還有另外一種解決方法就是,將需要增加的參數寫在表單隱藏域中,這樣是需要使用Form.serialize()方法,即可將其余參數增加進去。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM