默認狀況下,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" } ]