asked on March 28, 2017
After implementing the thousand delimiter for Forms 9.2, my calculation went haywire. Could someone take a look at the code and let me know where the issue lies? Thanks.
$(document).ready(function () {
$('.table').on('blur', 'input', sumtotal)
//$('#q17').on('blur', 'input', sumtotal)
$('#q19').on('blur', 'input', sumtotal)
//product table function
function sumtotal() {
$('.total input').attr('readonly', false);
var quantity = 0;
var unit = 0;
var total = 0;
var subtotal = 0;
var shipping = $('#q19 input').val();
var gradtotal = 0;
$('.table.cf-table-block tbody tr').each(function () {
quantity = parseNumber($(this).find('.quantity input').val());
unit = parseNumber($(this).find('.unit input').val());
subtotal = parseNumber(quantity * unit);
$(this).find('.total input').val(subtotal.toFixed(2));
total += subtotal;
$(this).find('.total input').change();
});
grandtotal = parseNumber(shipping)+parseNumber(total)//+(total*$('#q17 input').val());
$('#q18 input').val(grandtotal);
$('#q18 input').change();
//console.log("Total " + total);
//console.log("Shipping " + shipping);
//console.log("Grand totol " + grandtotal);
}
//parse for number value function
function parseNumber(n) {
if (typeof n === 'string' || n instanceof String)
n = n.replace(/,/g, '');
var f = parseFloat(n); //Convert to float number.
return isNaN(f) ? 0 : f; //treat invalid input as 0;
}
//Format numbers with commas
$(".unit input, .etotal input, .shipping input").attr("pattern", '^(\\d+|\\d{1,3}(,\\d{3})*)(\\.\\d{2})?$');
$(".unit input, .etotal input, .shipping input, #q18 input, .total input").on("change", function () {
$(this).val($(this).val().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
});
});
0
0