$(document).ready(function () { $('.dates').on('blur', 'select', sumtotal); $('.dates').on('click', sumtotal); $('.dates').on('change', sumtotal); $('.cf-table-add-row').on('click', sumtotal); function sumtotal() { $('.ro input').attr('readonly','False'); var expsum = 0; var milesum = 0; var pcardsum = 0; var oopsum = 0; var othersum = 0; var totsum = 0; var checksum = 0; var foodentsum = 0; var milerate = $('.milerate input').val(); $('.cf-table-block tbody tr').each(function () { var s = 0; var p = 0; var o = 0; var t = 0; var f = 0; var amount = 0; $(this).find('.expsum input').each(function () { amount = parseFloat(Math.round((parseNumber($(this).val()))*100)/100).toFixed(2); s = amount; }) $(this).find('.paidby select').each(function () { if ($(this).val() == "P-Card") { p = amount;} else if ($(this).val() == "Out Of Pocket") { o = amount;} else if ($(this).val() == "Other") { t = amount;} }) $(this).find('.type select').each(function () { if ($(this).val() == "Food/Entertainment") { f = amount;} }) if (s != 0.00) { $(this).find('.expsum input').val(s); } if (p != 0.00) { pcardsum += parseNumber(p);} if (o != 0.00) { oopsum += parseNumber(o);} if (t != 0.00) { othersum += parseNumber(t);} if (f != 0.00) { foodentsum += parseNumber(f);} }); $('.cf-table-block tbody tr').each(function () { var s = 0; $(this).find('.miles input').each(function () { s = parseFloat(Math.round((parseNumber($(this).val()) * milerate)*100)/100).toFixed(2); }) $(this).find('.milesum input').val(s); }); $('td.milesum').each(function () { var s = 0; $(this).find('input').each(function () { s += parseNumber($(this).val()); }) milesum += s; }); $('td.expsum').each(function () { var s = 0; $(this).find('input').each(function () { s += parseNumber($(this).val()); }) expsum += s; }); totsum = parseFloat(Math.round((expsum + milesum)*100)/100).toFixed(2); checksum = parseFloat(Math.round((oopsum + milesum)*100)/100).toFixed(2); milesum = parseFloat(Math.round((milesum)*100)/100).toFixed(2); pcardsum = parseFloat(Math.round((pcardsum)*100)/100).toFixed(2); oopsum = parseFloat(Math.round((oopsum)*100)/100).toFixed(2); othersum = parseFloat(Math.round((othersum)*100)/100).toFixed(2); foodentsum = parseFloat(Math.round((foodentsum)*100)/100).toFixed(2); $('.totalcheck input').val(checksum); $('.totalfoodent input').val(foodentsum); $('.totalother input').val(othersum); $('.totalmile input').val(milesum); $('.totaloop input').val(oopsum); $('.totalpcard input').val(pcardsum); $('.total input').val(totsum); $('.ro input').attr('readonly','True'); } function parseNumber(n) { var f = parseFloat(n); //Convert to float number. return isNaN(f) ? 0 : f; //treat invalid input as 0; } });