jquery总和从初始价格的复选框中减去价格

时间:2014-06-12 15:53:03

标签: javascript jquery checkbox

所以我有一个初始值$8.90,如果选中了复选框,我们的想法就是增加额外的费用。每个复选框都有一个数据价格值的价格,当我点击第二个复选框时问题就出现了。它应该将费用加到当前值:

实时脚本: http://jsfiddle.net/NF7x9/

JQUERY:

$(document).ready( function() {

var subt_value = parseFloat($('#subt0').text());
var start_price = parseFloat($('#subt0').attr('data-original'));

        $("#ser1, #ser2").click(function(){

            var sub_total = 0
            var extra_fee = parseFloat($(this).attr('data-price')/1.12).toFixed(2);


            $(this).each(function(){
                if($(this).is(":checked")){
                    var sub_total = subt_value + parseFloat(extra_fee);
                    $('#subt0').text(parseFloat(sub_total).toFixed(2));
                }else{
                    $('#subt0').text(parseFloat(start_price).toFixed(2));
                }
            });


        });

});

HTML:

<label id="subt0" data-original="8.90">8.90</label>

<input name="service1" type="checkbox" id="ser1" data-price="1" value="1" title="Service 1" />
<input name="service2" type="checkbox" id="ser2" data-price="5" value="1" title="Service 2" />

结果:

$ 8.90 开头。如果我选中ID=ser2复选框,则价格会更改为13.36现在,如果我选中ID=ser1框,则$9.79的总数应为14.25 < / p>

1 个答案:

答案 0 :(得分:2)

我会在每次单击其中一个复选框时检查并从起始值计算。

 var subt_value = parseFloat($('#subt0').text());
 var start_price = parseFloat($('#subt0').attr('data-original'));

    $("#ser1, #ser2").click(function(){
        var amountToAdd = 0.0;
        // check each button to see if it has a clicked state.
        $("#ser1, #ser2").each(function() {
            if($(this).is(":checked")){
                amountToAdd += parseFloat($(this).attr('data-price'));
            }
        });

        $('#subt0').text(parseFloat(amountToAdd+start_price).toFixed(2));
   });

示例:http://jsfiddle.net/NF7x9/1/