2013-02-09 85 views
1

我正在循環幾個輸入並試圖將該數據追加到一個對象中,然後我可以將它傳遞給AJAX函數。我不太確定自己做錯了什麼,但是我一直收到一個錯誤,說"Uncaught SyntaxError: Unexpected token)",我找不到這個額外的支架,我想我必須這樣做是不正確的。遍歷輸入並將數據傳遞給AJAX函數

var dataObject = []; 

$("#"buttonId).find("input").each(function(index) { 

    inputId = $(this).attr("id").replace(buttonId, ""); 
    inputValue = $(this).val(); 

    var data = { 
     inputId : inputValue; 
    } 

    dataObject.push(data); 
}); 

$.post(
    'ajax/' + buttonId + '.php', 
    { 
     dataObject: dataObject 
    }, 
    function (response) { 
    } 
); 

回答

2

您缺少字符串連接的+

$("#"buttonId) 
// ^---- 

你也不能使用變量作爲對象文本屬性名稱,試試這個:

var data = {}; 
data[inputId] = inputValue; 
dataObject.push(data); 

您還可以使用map方法:

var dataObject = $("#" + buttonId).find("input").map(function() { 
    var inputId = this.id.replace(buttonId, ""), 
     obj = {}; 
    obj[inputId] = this.value; 
    return obj; 
}).get(); 

或者.serializeArray()方法。

+0

是的,這似乎工作!在繼續確定我有最合適的方法之前,我會先看看map方法和.serializeArray()方法。非常感謝你的幫助,並告訴我我做錯了什麼。 – radleybobins 2013-02-09 03:49:12