Ask a Question related to Macromedia Dynamic HTML, Design and Development.
-
noobie2005 #1
form totaling
Hi.
I'm having a strange problem. In this form, I enter a default value of 0 in
the textfield. When the user enters all his information, and the information is
totaled,it does'nt do anything. Could this be becasue it sees the default value
as a Char? If anyone knows whats going on, any help would be appreciated.
Thanks in advance...
Here's the code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<script language="JavaScript" type="text/javascript">
<!--
function Total()
{
var A = document.form.accom.value
var B = document.form.transport.value
var C = document.form.fuel.value
var D = document.form.meals.value
var E = document.form.phone.value
var F = document.form.entertain.value
var G = document.form.other.value
var H = document.form.advances.value
A = Number(A)
B = Number(B)
C = Number(C)
D = Number(D)
E = Number(E)
F = Number(F)
G = Number(G)
H = Number(H)
if (H > 0)
{
total = (A + B + C + D + E + F + G)
s_total = (A + B + C + D + E + F + G)
g_total = ((A + B + C + D + E + F + G) - H)
}
else
{
total = (A + B + C + D + E + F + G)
s_total = (A + B + C + D + E + F + G)
g_total = (A + B + C + D + E + F + G)
}
document.form.total.value = total.toFixed(2)
document.form.subtotal.value = s_total.toFixed(2)
document.form.grandtotal.value = g_total.toFixed(2)
}
</script>
<body>
<form name="form">
<table class="formelements" cellspacing="2" cellpadding="2" border="1">
<tr>
<td valign="top"><strong>Date</strong></td>
<td valign="top"><strong>Account</strong></td>
<td valign="top"><strong>Description</strong></td>
<td valign="top"><strong>Accom</strong></td>
<td valign="top"><strong>Transport</strong></td>
<td valign="top"><strong>Fuel</strong></td>
<td valign="top"><strong>Meals</strong></td>
<td valign="top"><strong>Phone</strong></td>
<td valign="top"><strong>Entertain</strong></td>
<td valign="top"><strong>Other</strong></td>
<td valign="top"><strong>TOTAL</strong></td>
</tr>
<tr>
<td valign="top"><input type="text" size="5" name="expensedate"
tabindex="1"></td>
<td valign="top"><input type="text" size="5" name="account"
tabindex="2"></td>
<td valign="top"><input type="text" size="5" name="description"
tabindex="3"></td>
<td valign="top"><input type="text" size="5" name="accom"
tabindex="4"></td>
<td valign="top"><input type="text" size="5" name="transport"
tabindex="5"></td>
<td valign="top"><input type="text" size="5" name="fuel"
tabindex="6"></td>
<td valign="top"><input type="text" size="5" name="meals"
tabindex="7"></td>
<td valign="top"><input type="text" size="5" name="phone"
tabindex="8"></td>
<td valign="top"><input type="text" size="5" name="entertain"
tabindex="9"></td>
<td valign="top"><input type="text" size="5" name="other"
tabindex="10"></td>
<td valign="top"><input type="text" size="5" name="total"
onFocus="this.form.elements[0].focus()"></td>
</tr>
<tr>
<td colspan="10" align="right" valign="middle"><strong>Sub
Total</strong></td>
<td valign="top">$<input type="text" size="5" name="subtotal"></td>
</tr>
<tr>
<td colspan="10" align="right" valign="middle"><strong>Subtract
Advances</strong></td>
<td valign="top">$<input type="text" size="5" name="advances" value=0
tabindex="11" onChange="Total(this.form)" ></td>
</tr>
<tr>
<td colspan="10" align="right" valign="middle"><strong>TOTAL</strong></td>
<td valign="top">$<input type="text" size="5" name="grandtotal"></td>
</tr>
</table>
<br>
<table class="formelements" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top">
<input type="radio" name="ineed" value="Reimbursement"
checked> Reimbursement
<br>
<input type="radio" name="ineed" value="PaymentNeeded"> Payment Needed
</td>
<td valign="middle">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form>
</body>
</html>
noobie2005 Guest
-
Totaling textboxes
Hi, I'm having trouble figureing out the last part of this problem. I'am using a javascript function to give me a grand total price for all the... -
file upload form enctype="multipart/form-data
I'm upload a file using cffile upload and that seems to work fine except I need to use enctype="multipart/form-data on the form side. This isn't a... -
Totaling instance in an array
I need to be able to total the number of instance a product goes into to my shopping cart. I have my shopping cart array looping over a query that... -
type conversion error totaling values in array ofstructures
Hi all - I'm trying to accumulate a total from a value within an array of structures, but I keep getting a data conversion error. It refuses to... -
#25676 [Opn]: Form hidden input ouput when any form=* is in url_rewriter.tags
ID: 25676 Updated by: davey@php.net Reported By: davey@php.net Status: Open Bug Type: Session related... -
rilkesf #2
Re: form totaling
I copied the code and it worked fine for me. My guess it that the problem
you're having isn't with the default value, but rather with how you're calling
the Total() script. Having the script tied to an onChange() handler in the
Subtract Advances field means that the script won't be run if they don't change
that field.
My suggestion would be to tie the script to onBlur() in each field. That way
anytime something is changed, all of the appropriate fields are updated.
rilkesf Guest
-
noobie2005 #3
Re: form totaling
:D Thank you so much, I can't believe that I could'nt think of that..Thank you! You saved me a big migrane!
noobie2005 Guest
-
noobie2005 #4
form totaling
Hello again,
First off, I would like to thank everyone who puts up with me and my
noninsesant (I think thats right) questions.
My question/problem. I have a form, as always, which I can get to total
correctly in one field, but when I move to the others to total them...it
does'nt really work. I'll attach the code so you can see what I'm saying:
Thanks in advance!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<script language="JavaScript" type="text/javascript">
<!--
function Calculatetotal(form)
{
var grand_total = 0
var mi_tot = 0
var milage = .405
var milage_tot = 0
var lod_tot = 0
var meals_tot = 0
var auto_tot = 0
var enter_tot = 0
var other_tot = 0
for (var i=0; i < form.elements.length; i++)
{
var el = form.elements[i];
if(el.type == "text" && el.name.substring(0,5) == "miles")
{
var milesArray = new Array(9)
milesArray[i] = el.value
mi_tot += Number(milesArray[i])
form.mi_tot.value = Number(mi_tot)
}
if(el.type == "text" && el.name.substring(0,7) == "lodging")
{
var lodArray = new Array(9)
lodArray[i] = el.value
lod_tot += Number(lodArray[i])
form.lod_tot.value = Number(lod_tot)
}
if(el.type == "text" && el.name.substring(0,5) == "meals")
{
var mealsArray = new Array(9)
mealsArray[i] = el.value
meals_tot += Number(mealsArray[i])
form.meals_tot.value = Number(meals_tot)
}
if(el.type == "text" && el.name.substring(0,4) == "auto")
{
var autoArray = new Array(9)
autoArray[i] = el.value
auto_tot += Number(autoArray[i])
form.auto_tot.value = Number(auto_tot)
}
if(el.type == "text" && el.name.substring(0,13) == "entertainment")
{
var enterArray = new Array(9)
enterArray[i] = el.value
enter_tot += Number(enterArray[i])
form.enter_tot.value = Number(enter_tot)
}
if(el.type == "text" && el.name.substring(0,5) == "other")
{
var otherArray = new Array(9)
otherArray[i] = el.value
other_tot += Number(otherArray[i])
form.other_tot.value = Number(other_tot)
}
if(el.type == "text" && el.name.substring(0,6) == "milage")
{
var milageArray = new Array(9)
var milesArray = new Array(9)
milesArray[i] = el.value
milageArray[i] = Number(milage) * Number(milesArray[i])
form.milage1.value = Number(milage)
milage_tot += Number(milageArray[i])
form.milage_tot.value = Number(milage_tot)
}
}
}
//-->
</script>
<body>
<form name="form" method="post" action="">
<table width="950" border="1">
<tr>
<th><div align="center">DATE</div></th>
<th><div align="center">DETAIL OF EXPENSES</div></th>
<th><div align="center">MILES</div></th>
<th><div align="center">MILEAGE</div></th>
<th><div align="center">LODGING</div></th>
<th><div align="center">MEALS</div></th>
<th><div align="center">TOLLS/AUTO</div></th>
<th><div align="center">ENTERTAINMENT</div></th>
<th><div align="center">OTHER</div></th>
<th><div align="center">TOTALS</div></th>
</tr>
<tr>
<td><input name="date1" type="text" size="8" maxlength="8"></td>
<td><input name="desc1" type="text" size="28"></td>
<td><div align="center"><input name="miles1" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage1" type="text"
size="12"></div></td>
<td><div align="center"><input name="lodging1" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals1" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto1" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment1" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other1" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_1" type="text"
size="12"></div></td>
</tr>
<tr>
<td><input name="date2" type="text" size="8" maxlength="8"></td>
<td><input name="desc2" type="text" size="28"></td>
<td><div align="center"><input name="miles2" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage2" type="text"
size="12"></div></td>
<td><div align="center"><input name="lodging2" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals2" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto2" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment2" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other2" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_2" type="text"
size="12"></div></td>
</tr>
<tr>
<td><input name="date3" type="text" size="8" maxlength="8"></td>
<td><input name="desc3" type="text" size="28"></td>
<td><div align="center"><input name="miles3" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage3" type="text"
size="12"></div></td>
<td><div align="center"><input name="lodging3" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals3" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto3" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment3" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other3" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_3" type="text"
size="12"></div></td>
</tr>
<tr>
<td><input name="date4" type="text" size="8" maxlength="8"></td>
<td><input name="desc4" type="text" size="28"></td>
<td><div align="center"><input name="miles4" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage4" type="text"
size="12"></div></td>
<td><div align="center"><input name="lodging4" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals4" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto4" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment4" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other4" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_4" type="text"
size="12"></div></td>
</tr>
<tr>
<td><input name="date5" type="text" size="8" maxlength="8"></td>
<td><input name="desc5" type="text" size="28"></td>
<td><div align="center"><input name="miles5" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage5" type="text"
size="12"></div></td>
<td><div align="center"><input name="lodging5" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals5" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto5" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment5" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other5" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_5" type="text"
size="12"></div></td>
</tr>
<tr>
<td><input name="date6" type="text" size="8" maxlength="8"></td>
<td><input name="desc6" type="text" size="28"></td>
<td><div align="center"><input name="miles6" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage6" type="text"
size="12"></div></td>
<td><div align="center"><input name="lodging6" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals6" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto6" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment6" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other6" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_6" type="text"
size="12"></div></td>
</tr>
<tr>
<td><input name="date7" type="text" size="8" maxlength="8"></td>
<td><input name="desc7" type="text" size="28"></td>
<td><div align="center"><input name="miles7" type="text" size="9"
onChange="Calculatetota
noobie2005 Guest
-
noobie2005 #5
Re: form totaling
Actually, better said, the problem is that the meals, tolls/auto, and other
totals are doubling, which is not good. Here's the new script and form.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<script language="JavaScript" type="text/javascript">
<!--
function Calculatetotal(form)
{
var grand_total = 0
var mi_tot = 0
var milage = .405
var milage_tot = 0
var lod_tot = 0
var meals_tot = 0
var auto_tot = 0
var enter_tot = 0
var other_tot = 0
for (var i=0; i < form.elements.length; i++)
{
var el = form.elements[i];
//Calculate all miles values by looping through all fields
if(el.type == "text" && el.name.substring(0,5) == "miles")
{
var milesArray = new Array(9)
milesArray[i] = el.value
mi_tot += Number(milesArray[i])
form.mi_tot.value = Number(mi_tot)
}//end mile if
//Lodgeing calculation
if(el.type == "text" && el.name.substring(0,7) == "lodging")
{
var lodArray = new Array(9)
lodArray[i] = el.value
lod_tot += Number(lodArray[i])
form.lod_tot.value = Number(lod_tot)
}//end lodging
//meals calc
if(el.type == "text" && el.name.substring(0,5) == "meals")
{
var mealsArray = new Array(9)
mealsArray[i] = el.value
meals_tot += Number(mealsArray[i])
form.meals_tot.value = Number(meals_tot)
}//end meals calc
//auto calc
if(el.type == "text" && el.name.substring(0,4) == "auto")
{
var autoArray = new Array(9)
autoArray[i] = el.value
auto_tot += Number(autoArray[i])
form.auto_tot.value = Number(auto_tot)
}//end auto calc
//entertainment calc
if(el.type == "text" && el.name.substring(0,13) == "entertainment")
{
var enterArray = new Array(9)
enterArray[i] = el.value
enter_tot += Number(enterArray[i])
form.enter_tot.value = Number(enter_tot)
}//end entertainment
//other calc
if(el.type == "text" && el.name.substring(0,5) == "other")
{
var otherArray = new Array(9)
otherArray[i] = el.value
other_tot += Number(otherArray[i])
form.other_tot.value = Number(other_tot)
}//end other calc
//milage calc
if(el.type == "text" && el.name.substring(0,6) == "milage")
{
var milageArray = new Array(9)
var milesArray = new Array(9)
milesArray[i] = el.value
milageArray[i] = Number(milage) * Number(milesArray[i])
form.milage1.value = Number(milage)
milage_tot += Number(milageArray[i])
form.milage_tot.value = Number(milage_tot)
}
}
}
//-->
</script>
<body>
<form name="form" method="post" action="">
<table width="950" border="1">
<tr>
<th><div align="center">DATE</div></th>
<th><div align="center">DETAIL OF EXPENSES</div></th>
<th><div align="center">MILES</div></th>
<th><div align="center">MILEAGE</div></th>
<th><div align="center">LODGING</div></th>
<th><div align="center">MEALS</div></th>
<th><div align="center">TOLLS/AUTO</div></th>
<th><div align="center">ENTERTAINMENT</div></th>
<th><div align="center">OTHER</div></th>
<th><div align="center">TOTALS</div></th>
</tr>
<tr>
<td><input name="date1" type="text" size="8" maxlength="8"></td>
<td><input name="desc1" type="text" size="28"></td>
<td><div align="center"><input name="miles1" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage1" type="text" size="12"
disabled></div></td>
<td><div align="center"><input name="lodging1" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals1" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto1" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment1" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other1" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_1" type="text" size="12"
disabled></div></td>
</tr>
<tr>
<td><input name="date2" type="text" size="8" maxlength="8"></td>
<td><input name="desc2" type="text" size="28"></td>
<td><div align="center"><input name="miles2" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage2" type="text" size="12"
disabled></div></td>
<td><div align="center"><input name="lodging2" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals2" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto2" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment2" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other2" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_2" type="text" size="12"
disabled></div></td>
</tr>
<tr>
<td><input name="date3" type="text" size="8" maxlength="8"></td>
<td><input name="desc3" type="text" size="28"></td>
<td><div align="center"><input name="miles3" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage3" type="text" size="12"
disabled></div></td>
<td><div align="center"><input name="lodging3" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals3" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto3" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment3" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other3" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_3" type="text" size="12"
disabled></div></td>
</tr>
<tr>
<td><input name="date4" type="text" size="8" maxlength="8"></td>
<td><input name="desc4" type="text" size="28"></td>
<td><div align="center"><input name="miles4" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage4" type="text" size="12"
disabled></div></td>
<td><div align="center"><input name="lodging4" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals4" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto4" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment4" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other4" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_4" type="text" size="12"
disabled></div></td>
</tr>
<tr>
<td><input name="date5" type="text" size="8" maxlength="8"></td>
<td><input name="desc5" type="text" size="28"></td>
<td><div align="center"><input name="miles5" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage5" type="text" size="12"
disabled></div></td>
<td><div align="center"><input name="lodging5" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals5" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto5" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment5" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other5" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_5" type="text" size="12"
disabled></div></td>
</tr>
<tr>
<td><input name="date6" type="text" size="8" maxlength="8"></td>
<td><input name="desc6" type="text" size="28"></td>
<td><div align="center"><input name="miles6" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="milage6" type="text" size="12"
disabled></div></td>
<td><div align="center"><input name="lodging6" type="text" size="12"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="meals6" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="auto6" type="text" size="16"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="entertainment6" type="text"
size="30" onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="other6" type="text" size="9"
onChange="Calculatetotal(this.form)"></div></td>
<td><div align="center"><input name="total_6" type="text" size="12"
disabled></div></td>
</tr>
<tr>
<td><input name="date7" type="text" size="8" maxlength="8"></td>
noobie2005 Guest



Reply With Quote

