ユーザーが販売した最大30個のアイテムを追加し、金額を入力して価格を表示できるため、最大30個の異なるフィールドを計算するこのJavascript関数があります。このコードは各広告申込情報で機能します。最大30個の商品を追加して、個々の合計を問題なく確認できます。フォームの下部に小計領域があり、そこに表示されるこの$ NaNを振ることができません...コードを表示すると、小計、スタント、および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));
});
});