默认状况下,Jquery没法将form转换成用于ajax参数的Javascript Object。
因此一直以来都是使用selector一个个读取数值而后本身构建Javascript Object的方式。今天偶然看到一段Jquery的插件,能够直接使用:ajax
$(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的文档,能够提取表单的元素,转换成以下形式(感受有点不上不下,不知道为何有这样的一个函数呢?):this
[ { name: "a", value: "1" }, { name: "b", value: "2" }, { name: "c", value: "3" }, { name: "d", value: "4" }, { name: "e", value: "5" } ]