经常会有这样的需求,就是使用ajax异步提交表单数据,我们往往会将他们封装成json发送。
那么如何简单而又快速的将表单封装成json呢?
我们先来看jquery给我们提供的一个方法:serializeArray()
该方法的用途就是将表单封装成一个数组。
所以,我们只需要在这个方法的基础,稍作修改。
核心代码
$.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;
};
测试
var formData = $("#editForm").serializeObject();