当两个值相等时,使用jquery显示按钮

时间:2014-07-10 08:54:18

标签: javascript jquery html html5

我一直在尝试将函数calculateSumc1中的参数传递给calculateSumc2。当sum和sum1的值都相等时,它应该显示show按钮。即使总和相等,也不会显示保存按钮。

<input type="button" class="btn btn-primary" id="save" style="display:none" value="Save" />


$(".c1").click(function ()
    {
        $(this).keyup(function ()
        {
            calculateSumc1();
        });
    });
$(".c2").click(function ()
{
    $(this).keyup(function ()
    {
        calculateSumc2();
    });
});

function calculateSumc1()
{
    var sum = 0;
    $(".c1").each(function ()
    {
        if (!isNaN(this.value) && this.value.length !== 0)
        {
            sum += parseFloat(this.value);
        }
    });
    $("#debit").html(sum);
    //calculatetotal(sum);
    calculateSumc2(sum);
}

function calculateSumc2(sum)
{
    var sum1 = 0;
    $(".c2").each(function ()
    {
        if (!isNaN(this.value) && this.value.length !== 0)
        {
            sum1 += parseFloat(this.value);
        }
    });
    $("#credit").html(sum1);
    console.log("sum1" + sum1);
    while (sum == sum1)
    {
        $("#save").show();
    }
}

1 个答案:

答案 0 :(得分:0)

为所有元素使用一个事件处理程序,总结所有内容并在该事件处理程序中进行比较

$('.c1, .c2').on('keyup', function() {

    var sum1 = $.map( $('.c1'), function(x) {
        return +x.value;
    }).reduce(function(a, b) {
        return a + b;
    });

    var sum2 = $.map( $('.c2'), function(x) {
        return +x.value;
    }).reduce(function(a, b) {
        return a + b;
    });

    $("#debit").html(sum1);
    $("#credit").html(sum2);

    $("#save").toggle( sum1 === sum2 );

});

FIDDLE