2009-06-05 69 views
0

我需要將幾個序列化的表單元素傳遞給一個函數,將它們作爲JSON對象返回。我寫了這個函數,但是fieldName在json對象中以「fieldName」結尾,而不是實際的字段名稱ie; 「PositionId」或「Series」。但值是正確的。 JS不會允許我使用field.name,但它確實允許field.value,這就是爲什麼我必須創建var fieldName。這裏是功能:如何從序列化表單構建自定義對象?

function SerializedFormToJSON(serializedForm){ 
    var myJSONObject = {}; 
    var fieldName = ""; 
    $.each(serializedForm, function(i, field) { 
     fieldName = field.name; 
     if (field.value != "" && field.value != "ALL") { 
     myJSONObject = { fieldName: field.value }; 
     } 
    }); 
return myJSONObject; 
} 

回答

3

除了你遇到的問題,你正在循環的每一次迭代重新創建對象。在您設置該屬性的行應爲:

myJSONObject[fieldName] = field.Value; 

功能齊全:

function SerializedFormToJSON(serializedForm){ 
    var myJSONObject = {}; 
    var fieldName = ""; 
    $.each(serializedForm, function(i, field) { 
     fieldName = field.name; 
     if (field.value != "" && field.value != "ALL") { 
     myJSONObject[fieldName] = field.value; 
     } 
    }); 
return myJSONObject; 
+0

混賬,你打我的像10秒。 – CookieOfFortune 2009-06-05 19:28:26

0

嘗試使用數組下標符號:

myJSONObject[fieldName] = field.value;