Thanks for the reply!
Now Im getting 'document.form.calculations' is null or not an object.
Any ideas?
Here is the entire script:
<SCRIPT LANGUAGE="JavaScript"><!--
// INVOICE CALCULATIONS
function calc(form) {
var sum = 0;
var rowsum;
var quantity = 1
// Add Lines (Line_Item_Subtotalx)
if ( parseFloat(form.Line_Qty1.value) &&
parseFloat(form.Line_Unit_Price1.value) ) {
quantity += parseInt(form.Line_Qty1.value);
form.Line_Qty1.value = parseInt(form.Line_Qty1.value);
form.Line_Unit_Price1.value = parseFloat(form.Line_Unit_Price1.value);
rowsum = form.Line_Qty1.value * form.Line_Unit_Price1.value;
sum += rowsum;
form.Line_Unit_Price1.value = money(form.Line_Unit_Price1.value);
form.Line_Item_Subtotal1.value = money(rowsum)
}
if ( parseFloat(form.Line_Qty2.value) &&
parseFloat(form.Line_Unit_Price2.value) ) {
quantity += parseInt(form.Line_Qty2.value);
form.Line_Qty2.value = parseInt(form.Line_Qty2.value);
form.Line_Unit_Price2.value = parseFloat(form.Line_Unit_Price2.value);
rowsum = form.Line_Qty2.value * form.Line_Unit_Price2.value;
sum += rowsum;
form.Line_Unit_Price2.value = money(form.Line_Unit_Price2.value);
form.Line_Item_Subtotal2.value = money(rowsum)
}
if ( parseFloat(form.Line_Qty3.value) &&
parseFloat(form.Line_Unit_Price3.value) ) {
quantity += parseInt(form.Line_Qty3.value);
form.Line_Qty3.value = parseInt(form.Line_Qty3.value);
form.Line_Unit_Price3.value = parseFloat(form.Line_Unit_Price3.value);
rowsum = form.Line_Qty3.value * form.Line_Unit_Price3.value;
sum += rowsum;
form.Line_Unit_Price3.value = money(form.Line_Unit_Price3.value);
form.Line_Item_Subtotal3.value = money(rowsum)
}
if ( parseFloat(form.Line_Qty4.value) &&
parseFloat(form.Line_Unit_Price4.value) ) {
quantity += parseInt(form.Line_Qty4.value);
form.Line_Qty4.value = parseInt(form.Line_Qty4.value);
form.Line_Unit_Price4.value = parseFloat(form.Line_Unit_Price4.value);
rowsum = form.Line_Qty4.value * form.Line_Unit_Price4.value;
sum += rowsum;
form.Line_Unit_Price4.value = money(form.Line_Unit_Price4.value);
form.Line_Item_Subtotal4.value = money(rowsum)
}
//GET SUBTOTAL
var total=0;
var theform = document.form["calculations"];
for (var i=1; i<=n; i++) {
total += (theform["Line_Item_Subtotal"+i].value-0);
}
theform.subtotal.value = money(total);
}
function money(num) // converts from floating point to money format
{
var amount = Math.abs(num);
var pounds = Math.floor(amount);
var pence = Math.round( 100*(amount-pounds) );
if(pence>99) pence=0, pounds++;
pence += ""
while (pence.length < 2) pence = "0" + pence;
amount = pounds + "." + pence;
if (num < 0) return "[" + amount + "]";
return amount;
}
//-->
</SCRIPT>
Matt Kruse said:
Targa said:
var sub1 = form.Line_Item_Subtotal1.value
var sub21 = (sub1-0) + (sub2-0) + (sub3-0) + (sub4-0) .......>
form.subtotal.value = money(sub21)
How can this be written to work with any number of
Line_Item_Subtotal(n) fields?
something like:
var total=0;
var theform = document.form["formname"];
for (var i=1; i<=n; i++) {
total += (theform["Line_Item_Subtotal"+i].value-0);
}
theform.subtotal.value = money(total);