我试图总结我选中的复选框和带有值的输入。目前,我将这两者分开(并按照我希望的方式运行),如下所示:
$(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));
};
答案 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
元素内的当前值。
但是,您应该注意,您不能依赖按特定顺序计算的两个小计。您不知道将进行哪种计算或先完成计算。