0

如果我在正确命名事物方面偏离了标准,请原谅我。

我有一个多个下拉列表在选择每个选项后计算价格,在所有列表的末尾,我有一个总金额,每次都加起来,但我希望最后一个下拉列表将总金额折扣 % 不添加给它。

价格来自mysql,折扣也来自mysql,这是我用来获取价格的代码

$(function(){
    $(".calculate").on("change", function(){
        var total = 0;
        $('.calculate').each(function() {
            if($(this).val() != 0) {
                total += parseFloat($(this).val());
            }
        });
        $('#total').text('£' + total.toFixed(2));
    });

});//]]>

我认为这与total += parseFloat($(this).val());. 我认为通过替换+/会起作用,但什么也没有?

谢谢

4

2 回答 2

0

可能是这样的:

$(function(){
   $(".calculate").on("change", function(){
       var total = 0;
       var discount_amount = define_value;
       $('.calculate').each(function() {
           if($(this).val() != 0) {
               discount_amount = $(this).val() * discount_variable;
               line_total = $(this).val() - discount_amount;
               total += parseFloat(line_total);
           }
       });
       $('#total').text('£' + total.toFixed(2));
});

});//]]>
于 2012-05-16T18:04:48.827 回答
0

首先,我会从将要进行折扣calculate的课程中删除该课程,并将其分配给,这是一个示例:<select>id="discount"<select>

<select id="discount" name="select-3">
    <option value="0">Select Discount Amount</option>
    <option value="10%">10%</option>
    <option value="20%">20%</option>
    <option value="50%">50%</option>
</select>

然后,当#discount或任何元素发生更改时,首先循环并在应用折扣之前将.calculate所有元素的总数与 class 相加,如下所示:calculate

$(function(){
    $(".calculate, #discount").on("change", function(){
        var total = 0;
        $('.calculate').each(function() {
            if($(this).val() != 0) {
                total += parseFloat($(this).val());
            }
        });
        if($('#discount').val() != 0) {
          total = total * ((100 - parseFloat($('#discount').val())) / 100);
        }
        $('#total').text('£' + total.toFixed(2));
    });
});

这是一个小提琴

于 2012-05-16T18:29:28.140 回答