默许情况下,Jquery没法将form转换成用于ajax参数的Javascript Object。
所以一直以来都是运用selector一个个读取数值然后本身构建Javascript Object的体式格局。本日有时看到一段Jquery的插件,能够直接运用:
$(form).serializeObject()
的情势,将form内里的内容转化成以下美丽的情势,真是皆大欢喜!
{
"a":1,
"b":2,
"c":3
}
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
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;
};
注:serialzeArray依据Jquery的文档,能够提取表单的元素,转换成以下情势(觉得有点处境尴尬,不知道为何有如许的一个函数呢?):
[
{
name: "a",
value: "1"
},
{
name: "b",
value: "2"
},
{
name: "c",
value: "3"
},
{
name: "d",
value: "4"
},
{
name: "e",
value: "5"
}
]