输入折扣代码时,jQuery从输入字段的总和中减去金额

时间:2013-09-10 15:07:43

标签: jquery sum var attr

好的,我把头发拉过来。我有一个主要由下拉选项和复选框组成的表单 - 这些都分配了值,以便用户选择事物,计算所有内容的总和值。

我的上一个输入字段是一个名为'折扣代码'我希望能够输入一组代码并从总和中减去固定金额。

以下是我用来检测折扣代码是否正确的脚本:

$(".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));
}

如你所见,总和被附加到一个名为#sum的div中 - 我无法弄清楚如何减去折扣输入的值。

您可以在此处查看我的代码:http://www.samskirrow.com/projects/distr/index3.html

这里是一个JSfiddle(计算里程数部分不起作用) http://jsfiddle.net/bZhK4/

1 个答案:

答案 0 :(得分:1)

希望我理解你在寻找什么:你不能改变你将calc_total声明为:

的calc sum函数
var calc_total = sum - parseFloat(discount);

然后确保您在应用折扣功能

上更新它
$(".apply_discount").click(function() {
  if ($("input[name='discount']").val() === "DISTR50") {
  $("span").text("Validated...").show();
  $("input[name='discount']").attr("value",500.99);
  calculateSum();
  return true;
  }
  $("span").text("Not a valid discount code").show().fadeOut(2000);
  return false;
});