前台传数据到后台
需将form表单进行序列化
采用jQuery内置的系列化方式 serialize
$("form").eq(0).serialize();
但所得到的结果并不是我们所想要的样子,可自行再试遍。
后来采用了其插件 serializeObject
$.fn.serializeObject = function () {
var obj = {};
var count = 0;
$.each(this.serializeArray(), function (i, o) {
var n = o.name, v = o.value;
count++;
obj[n] = obj[n] === undefined ? v
: $.isArray(obj[n]) ? obj[n].concat(v)
: [obj[n], v];
});
//obj.nameCounts = count + "";//表单name个数
return JSON.stringify(obj);
};
这样就得到了,我们想得到的结果。(虽然这代码还是有些Bug,例如复选框之内的,但对于我的代码而言是可以的了。)
var subjectData = $("form").eq(1).serializeObject();
var url ="/{0}";
$.post(url,{"subjectData":subjectData},function(data){
console.log(data.info);
});