2017-10-10 151 views
-1

我有一堆複選框,每個複選框的值都是不同的價格。我創建了一個對象,該對象包含將該值插入數組(如果該框被選中)的功能。當我控制檯登錄空數組時,它顯示爲空,所以我知道這是有效的。我只是無法得到它與控制日誌與推入的值。使用javascript將複選框值推入到數組中

<input type="checkbox" id="bac" value ="1">bacon - $1 


var allIngredients = { 

ingredientArray: [], 
baconBox: function() { 
    var bacon = document.getElementById('bac'); 
    if (bacon.checked === true) { 
    this.ingredientArray.push(bacon.value); 
    } 
}, 

編輯:

console.log(allIngredients.ingredientArray); 

返回一個空數組這樣 「[]」。我無法得到它返回一個數組與培根的價值,就像這個「[1]」當我檢查框。培根的價值是1.

+1

你是否在任何地方調用'baconBox'函數? – Cerbrus

+1

'我只是無法得到它與控制檯日誌中的推入的值... ...你會需要代碼'console.log(某事)'如果你想console.log的東西......不是你認爲? –

+0

正如@Cerbrus所說的,你必須在某處調用它,就像在改變複選框的事件監聽器中一樣。 – Walk

回答

0

正如其他人在評論中指出的,你應該調用函數allIngredients.baconBox()

一種選擇是添加事件偵聽器,像這樣:

document.getElementById('bac').addEventListener('change', function() { 
    allIngredients.baconBox(); 
}); 

雖然這種方法的缺點是,取消勾選框不會從你的allIngredients陣列刪除bacon.value

相關問題