2013-06-27 96 views
2

我有一組自動填充文本菜單的我試圖綁在一起工作類似於一年化妝模式選擇菜單列表。您首先填寫一年,然後過濾該產品,然後過濾模型。我的字段過濾完美,但我希望禁用和清除字段,缺乏填充過濾器字段。例如,如果year爲null,那麼make model字段將被禁用,或者如果您清除make,它也將清除模型字段並將其設置爲禁用。的Javascript的Json的OBJ動態數組變量名稱

我的想法是要分配的字段的一組,並通過該組成JSON對象爲一個數組。例如,

的JS被加載一次,並且初始化函數被調用用於每個文本框。

spec.group = yearMakeModelGroup 

spec.id = fieldId 

var group={}; 

init = function(spec) { 
    var groupId = spec.group; 

    if(!group.hasOwnProperty(groupId)) {     
     group = {groupId:[]}; 
    } 

    group.groupId.push(spec.id); 
}; 

我無法弄清楚如何動態地創建一個數組的名字,這樣我可以在網頁上使用此代碼與其他羣體。示例yearMakeModelGroup = year,make,model plus forsaleGroup = forsale,forsalebyowner,auto。

+0

你分配給'group'的'object'不是'array'的 – steo

+0

可能重複[傳遞動態關鍵字:值對的對象文字?](http://stackoverflow.com/questions/4119324/passing-in-dynamic-keyvalue-pairs-to-an-object-literal)和[動態對象屬性名](http://stackoverflow.com/q/4244896/218196)。 –

回答

1

您需要創建一個對象,然後使用bracket notationmember operator)創建一個動態密鑰

if(!group.hasOwnProperty(groupId)) {  
    var obj = {}; 
    obj[groupId] = []; 
    group = obj; 
} 
+0

當代碼到達group.groupId.push,螢火說的groupId是不確定的,任何想法可能怎麼回事? –

+0

@George再次,你需要使用'組[的groupId] .push()' –

+0

它似乎仍然失敗,VAR的groupId = spec.group;如果(!group.hasOwnProperty(groupId)){var_obj = {}; obj [groupId] = []; group = obj; } group [groupId] .push(spec.id); 警報(group.groupId [0]); groupId未定義。 –