將表單元素序列為物件程式碼例項

antzone發表於2017-03-15

有時候將表單元素序列化一個物件然後再進行操作可能會更加便利,下面就是一段這樣的程式碼能夠實現此功能。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function serializeObject(form){ 
  var o={}; 
  $.each(form.serializeArray(),function(index){ 
    if(o[this['name']]){ 
      o[this['name']]=o[this['name']]+","+this['value']; 
    }
    else{ 
      o[this['name']]=this['value']; 
    } 
  }); 
  return o; 
}

以上程式碼實現了我們的要求,可以將表單元素序列化為一個物件,下面對程式碼做一下簡單註釋。

一.程式碼註釋:

1.function serializeObject(form){},引數是一個form表單物件,當然必須是jQuery物件。

2.var o={},宣告一個空物件用來儲存表單元素的名稱和value值,物件的屬性名稱是表單元素name屬性值,屬性值是表單元素的value屬性值。

3.$.each(form.serializeArray(),function(index){}),form.serializeArray()會返回一個陣列,元素是物件直接量,每一個物件直接量包含兩個兩個名值對,一個是name/name屬性值,另一個是value/value屬性值。$.each()可以遍歷建立的陣列。

4.if(o[this['name']]){o[this['name']]=o[this['name']]+","+this['value'];},如果物件中已經存在響應的屬性名,那麼就進行字串連線然後再次重置屬性值,這個適用於向多個同名核取方塊被選中的類似情況。

5.else{ o[this['name']]=this['value']; } ,建立屬性並賦值。

6.return o,返回生成的物件。

二.相關閱讀:

1.serializeArray()函式可以參閱jQuery serializeArray()一章節。 

2.物件直接量可以參閱js物件直接量簡單介紹一章節。

相關文章