2013-09-25 4 views
0

У меня есть JavaScript if заявление, что делает следующее:JavaScript, если оператор с дополнительным условием

Если метод оплаты называется cardless выбран, то 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 фунтов.

Как бы это сделать, сделайте расчет выше, но затем добавьте еще одну строку, в которой говорится, что если карточная карта больше 2 фунтов стерлингов, установите карточку в £ 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

Просто добавьте вторые Постулаты внутрь вашего 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')); 
Смежные вопросы