2013-07-16 44 views
0

我試圖創建一個購物車,構建一個數組發送到服務器。我無法弄清楚的部分是允許用戶通過更新basketItems數組中「數量」值的輸入字段更改數量。通過輸入字段更新javascript數組數據

我可能會談論這個錯誤,但希望你們中的一位天才能幫助我。

var basketItems = [ 
    { itemName:"Item 1", price:1.00, quantity:0 }, 
    { itemName:"Item 2", price:2.00, quantity:0 }, 
    { itemName:"Item 3", price:3.00, quantity:0 } 
]; 

var basketItemsTotal = 0.00; 

function CalcBasketTotal() { 
     for (i=0;i<basketItems.length;i++) { 
      if (basketItems[i].quantity > 0) { 
       basketItemsTotal = basketItems[i].price * basketItems[i].quantity; 
      } 
     } 
} 

function PopulateBasketItems() { 
     for (i=0;i<basketItems.length;i++) { 
      basketTable.innerHTML += 
      '<tr><td>' + basketItems[i].itemName + '</td>' + 
      '<td>$' + basketItems[i].price + '</td>' + 
      '<td><input value="' + basketItems[i].quantity + '"></td>' + 
      '<td>$' + basketItems[i].price * basketItems[i].quantity + '</td></tr>'; 
     } 
} 

獎勵:最後,我試圖讓這個腳本這個數組向服務器發送與總一起,但第一件事的第一!

回答

1

您broblem是在這裏:

function CalcBasketTotal() { 
    for (i=0;i<basketItems.length;i++) { 
     if (basketItems[i].quantity > 0) { 
      basketItemsTotal = basketItems[i].price * basketItems[i].quantity; 
     } 
    } 
} 

修復:(由+ =代替=對總量)

function CalcBasketTotal() { 
    for (i=0;i<basketItems.length;i++) { 
     if (basketItems[i].quantity > 0) { 
      basketItemsTotal += basketItems[i].price * basketItems[i].quantity; 
     } 
    } 
} 
+0

謝謝清。我應該如何調用CalcBasketTotal函數? Onchange屬性?事件監聽?我已經探索過這些選項,但無法弄清楚。 – Kai

+0

無論何時更改陣列,您都可以致電。如果您想要添加onchange屬性,則只能使用表單輸入元素。 –