頁面中引用了jquery,第一想到的就是序列化,但是序列化后的表單字段為a=1&b=2這種。
這里寫一個jquery的擴展方法
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
這個方法是將表單序列化成json的。
像這樣調用:
var para = $('form').serializeObject() ;
para = JSON.stringify(para) ;
先把表單數據序列化為一個json對象,然后將json對象轉換成一個json字符串。
這樣para就是一個json字符串啦。就可以發起請求了
注意:這個只能獲取到所有的input標簽,如果想獲取下拉框的話,需要單獨獲取,然后把獲取到的值拼接進去。例如:
var data=$("#fm").serializeObject();
JSON.stringify(data);
data.txt2="1111";//修改值
var sel1=$("#sel1").val();//獲取下拉框的值
data.sel1=sel1;//拼接進去
