2014-07-10 45 views
0

我一直試圖將函數calculateSumc1的參數傳遞給calculateSumc2。當sum和sum1的值相等時,它應該顯示show按鈕。即使總和相同,保存按鈕也不會顯示。當兩個值相等時使用jquery顯示按鈕

<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

您可以點擊多少次是$(」 C1" ) ,, $(「。c2」)按鈕..它會綁定鍵盤事件每次 – Balachandran

+1

根本沒有得到它,但不應該是* if(sum == sum1)*而不是* while(sum = = sum1)* – smartmeta

+0

這是如果,但我改變它,而只是爲了看看它是否有效。它不適用於兩個 – Cerebus1504

回答

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

+0

它的完美。非常感謝 :) – Cerebus1504

相關問題