2010-07-24 40 views
0

你好,這是形勢使用JavasScript變量temp

var seat_sel = document.getElementById('cmb_num_seat').value; 

var cashp = document.getElementById('hdn_price').value; 

var CHILD_PRICE = '5' 

if(seat_sel > 0){ 
    CHILD_PRICE = CHILD_SEAT_PRICE * seat_selected; 
}else{ 
     CHILD_PRICE = CHILD_SEAT_PRICE * seat_selected; 
} 
    document.getElementById('disp_2_div').innerHTML = formatCurrency(parseInt(cashp)+parseInt(CHILD_PRICE)); 
    document.getElementById('hdn_price').value = formatCurrency(parseInt(cashp)+parseInt(CHILD_PRICE)) 

例如...

我有cashp=20

當用戶選擇cmb_num_seat(DROP DOWN),那麼價格將增加是

20+(5*3)=20+15=45 

假設我在下拉菜單中選擇了3個...

但在某些情況下,計算出了問題......

像選擇3,然後選擇4,然後選擇2,然後選擇1,

在這種情況下,舊值hdn_price是在騎馬。加入..bcoz ...

有什麼辦法...保持一些變量第一個值,然後做計算...

+1

請顯示完整的功能以及如何調用它。這很重要。同時顯示錶單字段。 – mplungjan 2010-07-24 13:51:46

+0

我的猜測是範圍問題,但像mplungjan說的,我們需要更多的信息。 – 2010-07-24 14:24:46

回答

3

我不知道究竟該問題是否與你的代碼是什麼或者你認爲它是什麼,把我看到幾個潛在的問題s:

  • 您可以混合使用數據類型。
  • 您使用了一個似乎未被初始化的變量(seat_selected)。

此外,你有一個if語句確實在這兩種情況下完全一樣的東西,你初始化CHILD_PRICE爲一個字符串,但是下面的代碼總是以一個數值來替換它。

如果您打算對數字進行計算,請在計算之前解析這些值。不要害怕爲中間值使用更多的變量,它沒有任何顯着的效果表現,並且使代碼更具可讀性。

如果你想保持起步價,你應該從隱藏字段讀出的值,一旦加載網頁時:

var price = parseInt(document.getElementById('hdn_price').value); 

然後使用該變量在更新代碼:

var seats = parseInt(document.getElementById('cmb_num_seat').value); 

var childPrice = CHILD_SEAT_PRICE * seats; 

var display = formatCurrency(cash + childPrice); 

document.getElementById('disp_2_div').innerHTML = display; 
document.getElementById('hdn_price').value = display;