2017-06-14 65 views
0

我有一個窗體的字段和另一個對象與項目的列表。但使用jQuery $("form").serializeObject(),它不是像這裏創建正確的對象:jQuery窗體serializeObject

var functionViewModel = new Object(); 
functionViewModel.Id = 1; 
functionViewModel.Name = "F-I-001"; 
functionViewModel.Localised = []; 
functionViewModel.Localised.push({ 

    LocalisedId: '1|1', 
    Subject: "F-N-001" 
}); 

functionViewModel.CategoryViewModel = new Object(); 
functionViewModel.CategoryViewModel.CategoryInGroup = []; 
functionViewModel.CategoryViewModel.CategoryInGroup.push({ 
    Id: '1' 
}) 

任何想法?

回答

0

你可以試試下面的解決方案:

var myObj = { 
    a: { 
    one: 1, 
    two: 2, 
    three: 3 
    }, 
    b: [ 1, 2, 3 ] 
}; 
var recEncoded = $.param(myObj); 
var recDecoded = decodeURIComponent($.param(myObj)); 

alert(recEncoded); 
+0

耶但在這種情況下,我仍然需要創建對象,我希望jquery通過屬性名稱,屬性值等來做到這一點 –

0

之前將數據發送到服務器,您需要stringify()的對象。在服務器上你需要parse()它。

  • 使用JSON.stringify()將對象轉換爲字符串。使用
  • JSON.parse()從字符串轉換JSON對象。

var functionViewModel = new Object(); 
 
functionViewModel.Id = 1; 
 
functionViewModel.Name = "F-I-001"; 
 
functionViewModel.Localised = []; 
 
functionViewModel.Localised.push({ 
 

 
    LocalisedId: '1|1', 
 
    Subject: "F-N-001" 
 
}); 
 

 
functionViewModel.CategoryViewModel = new Object(); 
 
functionViewModel.CategoryViewModel.CategoryInGroup = []; 
 
functionViewModel.CategoryViewModel.CategoryInGroup.push({ 
 
    Id: '1' 
 
}) 
 

 
var str = JSON.stringify(functionViewModel) 
 
var obj = JSON.parse(str); 
 
console.log(str); 
 
console.log(obj);

將其發送到服務器。使用

$.post(
    url: url, //Url of your server 
    data: JSON.stringify(obj), //data you want to send to server 
    function(data, status) { 
    alert("Success");   
}); 

正如指出的Heena,您可以使用param()

你需要序列化/對象提交前轉換爲字符串。您可以使用$.param()

$('#form').val($.param(functionViewModel));

+0

也許我正在表達我錯了,我想jquery閱讀我的頁面按字段去字段併爲我創建它 –

+0

試試這個'函數objectifyForm(formArra y){//序列化數據函數 var returnArray = {};對於(var i = 0; i

0

這裏這一個解決我的問題,我需要定製它能夠得到一個列表中的列表,但是工作很適合我

http://jsfiddle.net/7MAUv/1/enter code here