Хорошо, я рву на себе волосы из-за этого. У меня есть форма, состоящая в основном из раскрывающихся списков и флажков - всем им назначены значения, поэтому, когда пользователь выбирает вещи, рассчитывается общая сумма всего.
Мое последнее поле ввода — это текстовый ввод под названием «Код скидки». Я хочу иметь возможность вводить установленный код и вычитать фиксированную сумму из суммы.
Ниже приведен скрипт, который я использую для определения правильности кода скидки:
$(".apply_discount").click(function() {
if ($("input[name='discount']").val() === "DISTR50") {
$("span").text("Validated...").show();
$("input[name='discount']").attr("value",500.99);
return true;
}
$("span").text("Not a valid discount code").show().fadeOut(2000);
return false;
});
и вот код, который вычисляет сумму моих входов:
//iterate through each textboxes and add keyup
//handler to trigger sum event
$(".txt, .select, .checkbox").each(function() {
$(this).change(function(){
calculateSum();
});
});
});
function calculateSum() {
var discount = $("input[name='discount']").attr('value');
var sum = 0;
//iterate through each textboxes and add the values
$(".txt, .select, .checkbox:checked").each(function() {
//add only if the value is number
if(!isNaN(this.value) && this.value.length!=0) {
sum += parseFloat(this.value);
}
});
//.toFixed() method will roundoff the final sum to 2 decimal places
var calc_total = sum;
$("#sum").html(calc_total.toFixed(2));
}
как видите, сумма добавляется к div с именем #sum — я не могу понять, как вычесть значение входной скидки.
вы можете увидеть мой код в действии здесь: http://www.samskirrow.com/projects/distr/index3.html
Вот он в JSfiddle (хотя раздел расчета пробега не работает) http://jsfiddle.net/bZhK4/ а>