我的刀片
<td style="border:none"></td>
<td style="border:none"></td>
<td style="border:none"></td>
<td><b>Total</b></td>
<td><input type="text" name="total" class="form-control total" readonly></td>
</tr>
<tr>
<td style="border:none"></td>
<td style="border:none"></td>
<td style="border:none"></td>
<td><b>Sales Tax</b></td>
<td><input type="text" name="tax" class="form-control tax" ></td>
</tr>
<td style="border:none"></td>
<td style="border:none"></td>
<td style="border:none"></td>
<td><b>Grand Total</b></td>
<td><input type="text" name="g_total" class="form-control g_total" readonly></td>
我正在使用jquery作为
$('tbody').delegate('.qty,.price,.dis,.tax','keyup',function(){
var tr=$(this).parent().parent();
var qty =tr.find('.qty').val();
var price =tr.find('.price').val();
var dis =tr.find('.dis').val();
var amount =(qty * price)- (qty * price * dis)/100;
tr.find('.amount').val(amount);
total();
var tax =tr.find('.tax').val();
var g_total =total() + (total() * tax)/100;
tr.find('.g_total').val(g_total);
});
对于税收和g_total,我正在使用此方法。
$('tfoot').delegate('.tax','keyup',function(){
var tr=$(this).parent().parent();
total();
var tax =tr.find('.tax').val();
var g_total =total()+ (total * tax)/100;
});
我正在使用此方法的全部功能。
//--------------------For total----------
function total()
{
var total=0;
$('.amount').each(function(i,e){
var amount = $(this).val()-0;
total+=amount;
})
$('.total').val(total);
};
除了g_total之外,我所有的值都正确。没有显示变量g_total
答案 0 :(得分:1)
您正在尝试使用函数的结果:
var g_total = total() + (total * tax) / 100;
但是您的函数不返回任何东西。看来您要返回计算出的值:
function total()
{
var total=0;
$('.amount').each(function(i,e){
var amount = $(this).val()-0;
total+=amount;
})
$('.total').val(total);
return total; // <---- here
};
顺便说一句,您还要两次调用该函数,这很浪费:
total();
var tax = tr.find('.tax').val();
var g_total = total() + (total() * tax) / 100;
相反,将结果存储在变量中并重新使用结果:
var calculatedTotal = total();
var tax = tr.find('.tax').val();
var g_total = calculatedTotal + (calculatedTotal * tax) / 100;
(请注意,并不是100%清楚您的变量/函数等中哪些是有意的,错别字等。总的来说,代码很难遵循,而调用一切“ total”并不容易。 t帮助。但是希望您至少能将结果存储在变量中,以免一遍又一遍地重新计算。)