2013-12-09 24 views
0

我有一個JavaScript函數,它遍歷一個窗體來獲取基於輸入字段的名稱的輸入值。然而,爲了滿足API post請求參數,我需要在以下JSON格式輸入:修改序列化表單功能採取輸入ID而不是名稱

{ 
    "name": "mobile offers", 
    "group_id": "35" 
} 

,其中「名」字段是從一個文本框和「GROUP_ID」字段輸入的結果的通過複選框選擇選項的結果。我怎樣才能改變這個功能,以便它的輸入基於文本框的名稱和複選框的ID?

$.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; 
}; 

我試着使用兩個單獨的功能,一個名字和一個ID這樣做,但不能弄清楚如何把一起輸出,並沒有意義的序列化形式的兩倍。

+0

是名稱上的複選框,然後毫無意義改變之前對ID的價值?非常簡單地改變名字,然後序列化 – charlietfl

+0

是的名字是毫無意義的,你的意思是什麼? – bookthief

回答

1

如果複選框name不正確,則只需將其序列化

$(':checkbox').attr('name',function(){ 
return this.id; 
}); 
/* now serialize form*/ 
+0

謝謝,我會在序列化函數內還是在它之前執行此操作? – bookthief

+0

可以放在'.fn.serializeObject = function(){'。 – charlietfl

+0

你也可以應用相同的概念,並將「類」更改爲「名稱」? – HPWD

相關問題