Jquery sum输入和选中的复选框

时间:2017-09-16 01:47:35

标签: jquery

我试图总结我选中的复选框和带有值的输入。目前,我将这两者分开(并按照我希望的方式运行),如下所示:

$(document).ready(function() {
  $('.box').change(function(){
    var totalbox = 0;
    $('.box:checked').each(function(){
        totalbox+= +($(this).attr("rel"));
    });
    $('#totalbox').val(totalbox.toFixed(2));
  });
});


$(document).on("recalc", ".vendor_accounts", function () {
  var totalinput = 0;
  $(this).find(".payment").each(function () {
    totalinput += +$(this).val();
  });
  $("#totalinput").val(totalinput.toFixed(2));
});

$(".vendor_accounts").trigger("recalc");

以上功能分别产生正确的结果。我只需要将这些结果的值组合起来,并将它们显示为id中的一个var。

根据以下答案,这就是诀窍:

function updateGrandTotalDisplayed(val){
  var input1 = parseFloat($('#checkTotal').val());
  var input2 = parseFloat($('#inputTotal').val());
  var total = input1 + input2;
  $('#totalPrice').val(total.toFixed(2));
};

1 个答案:

答案 0 :(得分:1)

一种解决方案是将total变量放在可用于计算总计的两个函数的范围内。例如,在所有代码之前,您可以编写:

var grandTotal = 0; 

然后,您可以在计算该小计时将每个小计添加到grandTotal变量。如果要在页面上的某处显示总计,则还可以在该点调用函数来更新显示的总计。例如,在第一部分中,您可以像这样更改它:

$(document).ready(function() {
  $('.box').change(function(){
    var total = 0;
    $('.box:checked').each(function(){
        total+= +($(this).attr("rel"));
    });
    $('#total').val(total.toFixed(2));
    grandTotal += total;
    updateGrandTotalDisplayed(); 
  });
});

updateGrandTotalDisplayed()将是您在别处编写的函数,并在此处调用以更新页面上显示的内容。)希望这会有所帮助。

编辑添加:如果您只想在不使用第三个变量的情况下对值求和,可以使用val()函数检索值,然后将它们一起添加。例如,$('#totalinput').val()将为您提供#totalinput元素内的当前值。

但是,您应该注意,您不能依赖按特定顺序计算的两个小计。您不知道将进行哪种计算或先完成计算。