2012-07-14 96 views
3

我正在處理基本訂單,我想看看是否可以從零開始構建它。使用javascript計算在線訂單總數

我有一個表格,其中包含12個列出的項目和項目數量的文本輸入字段。我想要做的是讓代碼通過表單檢查已輸入的任何數量,然後將這些值與數組中的價格相關聯。

到目前爲止,我有數組:

var juicePrice = new Array(); 
juicePrice["citrusZing"]=20.00; 
juicePrice["strawberrySmooth"]=22.00; 
juicePrice["carrotSpin"]=21.50; 
juicePrice["Tropical"]=20.75; 
... 

,並通過形式運行方式:

calculateTotal()  
{ 
var juiceForm = document.forms["juiceform"]; 

    //Get a reference to the juice the user Chooses name=selectedJuiceQty": 
    var selectedJuiceQty = juiceForm.elements["selectedJuiceQty"]; 

    for(var i = 0; i < selectedJuiceQty.length; i++); 

,但我不太清楚如何將信息從形式連接到計算總數。任何人都可以將我指向正確的方向嗎?是這樣的嗎?

for(var i = 0; i < selectedJuiceQty.length; i++){ 
    var juiceTotal = 0; 

    if(selectedJuiceQty[i]>0) { 
     juiceTotal += juicePrice[selectedJuiceQty[i].value]*selectedJuiceQty; 
     //If we get a match then we break out of this loop 
     break; 
    } 
    return total; 
} 

是否有可能使用相同的名稱標記爲每個字段或者我應該只使用citrusZingQty = parseInt(document.getElementById("citrusZing").value);每個項目?然後,我將不得不列出所有的項目,這似乎不是一個非常優雅的方式。如果選擇多個項目會發生什麼?

任何人都可以幫助我指出正確的方向是很好的。

+2

這功課嗎? – Incognito 2012-07-14 14:37:16

+2

對於任務,所以我想是的。這會影響答案嗎? – user1361276 2012-07-14 14:38:29

+1

請注意,儘管您聲明瞭一個數組,但您正在爲其添加對象屬性。 JavaScript不像其他語言中的PHP關聯數組或哈希值那樣工作!他們沒有字符串鍵! 'var juicePrice = {};'...作爲對象聲明,因爲這就是你使用它的方式。 – 2012-07-14 14:44:40

回答

1

所以你可以做你想做的。邁克爾在評論中指出了這一點,但它可能被忽視了。

var myPrices = new Object(); 
myPrices['eggs'] = 1.50; 
myPrices['bread'] = 1.00; 
// ... 

然後你可以遍歷你的表單域並檢查你的'myPrices'對象。

編輯

要回答你的問題的意見 - 我不會爲我所有的輸入字段使用相同的名稱。它確實可以讓表單更容易循環。然而,在我看來,使用輸入標籤的id/class並不是一個好的解決方案。 HTML id/class用於CSS/Javascript操作,並用它來標識輸入所代表的水果對於其他開發項目的開發人員來說並不明顯(我認爲這對你來說可能是一個小項目,但最好不要啓動陋習)。我會在它代表的果汁/飲料之後命名每個輸入。

+0

謝謝@Jeff。我可以爲每個字段使用相同的名稱屬性嗎?如果選擇多個項目,會產生問題嗎? – user1361276 2012-07-17 08:49:18

+0

你的意思是表單域的名稱?你可以爲你的問題添加HTML嗎? – jeff 2012-07-18 13:03:04

+0

是的,在表單域中。例如,如果我給每個數量字段命名爲'name =「juiceqty」',它會出現問題嗎? – user1361276 2012-07-19 18:32:13