2013-09-25 88 views
0

我有一個JavaScript if語句執行以下語句:的JavaScript如果有額外的條件

如果選擇無卡稱爲付款方式,那麼cardfee varable設置爲總費用的1%。

if (document.getElementById('payment_method').value == "Cardless") { 
    cardfee = ((thetotal * (1 + vatrate)) * 0.01);  
}  
document.getElementById('card_fee').value = cardfee;  
formatPrice(document.getElementById('card_fee')); 

問題是,雖然總費用的1%是罰款,但付款方式有一個上限。其1%但最高爲2英鎊。

我如何讓它做上面的計算,然後添加另一行表示如果cardfee大於£2,將cardfee設置爲£2?

+1

'if(cardfee> 2){cardfee = 2; ''? – David

+3

只是一個小小的記錄,也許你知道這一點,但如果客戶選擇的是實際的貨幣含義,那麼你不應該在客戶端做這件事。用戶可以改變它並提交較低的數量進行處理。確保你也有適當的服務器端規則 – Jonathan

回答

3

你並不需要更改條件,你可以改變你如何分配新值。 Using Math.min()你可以把它分配給兩個值的較小者:

if (document.getElementById('payment_method').value == "Cardless") { 
    cardfee = Math.min(((thetotal * (1 + vatrate)) * 0.01), 2.0); 
} 

這樣,如果所產生的計算大於2.0,分配將是2.0。否則,分配將是計算結果。 (如果兩者相等,則使用哪一個並不重要)。

0

第二statment只需添加到您的內部塊if

if (document.getElementById('payment_method').value == "Cardless") { 
    cardfee = ((thetotal * (1 + vatrate)) * 0.01); 
    if (cardfee > 2.0) { 
    cardfee = 2.0 
    } 
} 
document.getElementById('card_fee').value = cardfee; 
formatPrice(document.getElementById('card_fee'));