Jquery SerializeObject - 將form表單轉化成Javascript object

默認狀況下,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"
      }
    ]
相關文章
相關標籤/搜索