jQuery输入复选框检查冲突

时间:2012-10-24 06:17:44

标签: javascript jquery checkbox calculator

在我的表格中选中的复选框中发生了一些非常奇怪的事情。 我在表格中建立了一个发票计算器,你可以看到它here,我的目的是一旦我自动检查输入(Iva或Irpef),它们就不会计算在总金额中。 正如您在链接的示例中所看到的,如果您选中 Irpef输入复选框,它运行良好,不会计算总金额中的Irpef。问题是我的输入复选框IVA不会发生相同的情况,为什么?代码完全相同。

当我尝试让它们分开工作时,它很好,两者都运行良好,所以看起来它们不能一起工作,它可能是?发生了什么?我在这个问题上需要你的帮助。

感谢

此处与问题相关的代码:

function tally(selector) {
    var total = 0;
    $('p.editable_number').each(function() {
        total += parseInt($(this).text()) || 0;
        $('#subtotal').html(total);
        if($("#iva").is(':checked')){
            $('#subtotal').html((total).toFixed(2));
            $('#total').html((total*0.00).toFixed(2));
            $('#total1').html((total*0.15).toFixed(2));
            $('#total2').html((total*0.85).toFixed(2));
        }
        else {
            $('#subtotal').html((total).toFixed(2));
            $('#total').html((total*0.21).toFixed(2));
            $('#total1').html((total*0.15).toFixed(2));
            $('#total2').html((total*1.06).toFixed(2));
        }
         if($("#irpef").is(':checked')){
            $('#subtotal').html((total).toFixed(2));
            $('#total').html((total*0.21).toFixed(2));
            $('#total1').html((total*0.00).toFixed(2));
            $('#total2').html((total*1.21).toFixed(2));
        }
        else {
            $('#subtotal').html((total).toFixed(2))
            $('#total').html((total*0.21).toFixed(2));
            $('#total1').html((total*0.15).toFixed(2));
            $('#total2').html((total*1.06).toFixed(2));
        }
        })
        }

$('#irpef').change(function() {
             tally('p#subtotal');
             tally('p#total');
             }); 
$('#iva').change(function() {
             tally('p#subtotal');
             tally('p#total');
             }); 

1 个答案:

答案 0 :(得分:1)

尝试这个,现在应该没问题。我认为你试图做其他事情,而不是做一次而不是一次(每个功能)。 refreshed 我添加了变量以跟踪总数/小计和增值税/ irpf。 each()遍历所有p.editable_number元素,所以你执行相同的代码几次,每次覆盖以前的结果,你得到正确的东西,因为它是计数的结束循环。现在您只需获取一次值,然后计算相关的小计,增量,irpf和总值(根据是否检查增值税或irpf的条件)。