我一直在尝试将函数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();
}
}
答案 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 );
});