我有这个 Javascript 函数,它可以计算多达 30 个不同的字段,因为用户可以添加多达 30 个他们出售的商品并输入数量并显示价格。此代码适用于每个行项目,我最多可以添加 30 个项目并查看它们各自的总数。在表格的底部,我有一个小计区域,这就是我无法动摇这个 $NaN 出现的地方......当查看代码时,它的小计、stantot 和 showtot 变量我得到了 NaN......
$(document).ready(function() {
var subtotal = 0;
var stantot = 0;
var showtot = 0;
$("input").keyup(function() {
for (i = 0; i <= 30; i++) {
var unitp = $("#unitp" + i).val();
var casep = $("#casep" + i).val();
var units = $("#units" + i).val();
var cases = $("#cases" + i).val();
var st_disc = $("#st_disc").val();
var sh_disc = $("#sh_disc").val();
var unitr = (unitp * units);
var caser = (casep * cases);
var result = (unitr + caser);
var st_disc_fix = (st_disc / 100);
var sh_disc_fix = (sh_disc / 100);
var st_disc_solo = (st_disc_fix * result);
var sh_disc_solo = (sh_disc_fix * result);
var disc_total = (st_disc_fix + sh_disc_fix);
var disc_whole = (disc_total * result);
var disc = (result - disc_whole);
var st_disc_tot = (result - disc_whole);
var sh_disc_tot = (result - disc_whole);
$("#line" + i).val('$' + result.toFixed(2));
$("#disc" + i).val('$' + disc.toFixed(2));
subtotal += parseInt(result);
stantot += parseInt(st_disc_tot);
showtot += parseInt(sh_disc_tot);
}
$("#totretail").val('$' + subtotal.toFixed(2));
$("#standiscount").val('$' + stantot.toFixed(2));
$("#showdiscount").val('$' + showtot.toFixed(2));
var totship = ($("#totship").val() * 1);
var tottax = ($("#tottax").val() * 1);
var finaltotal = (subtotal + stantot + showtot + totship + tottax);
$("#total").val('$' + finaltotal.toFixed(2));
});
});