I have several fields being updated for a parking structure... The client inputs the number of cars and can immediately see the percentage before updating the database....

The field names always change so I need the JavaScript to be able to pick up the unique field names calculate and place into the total field box...

I found this code online, but I need to do this dynamically for hundreds of lots...

So basically I have a field name and an ID number identifying the 3 related fields...

Here's an example that works for one lot:

<HEAD>

<script type="text/javascript">

<!-- Begin
function startCalc(){
interval = setInterval("calc()",1);

}
function calc(){
one = document.autoSumForm.firstBox.value;
two = document.autoSumForm.secondBox.value;
document.autoSumForm.thirdBox.value = (one * 1) / (two * 1);

}
function stopCalc(){
clearInterval(interval);
}
// End -->
</script>
</HEAD>

<BODY>

<form name="autoSumForm">
<input type=text name="firstBox" value="1000" onFocus="startCalc();" onBlur="stopCalc();"> /
<input type=text name="secondBox" value="" onFocus="startCalc();" onBlur="stopCalc();"> =
<input type=text name="thirdBox">

</BODY>

Here is an example of what I need, notice there is an ID number after each field name....


<input type=text name="firstBox123" value="1000" onFocus="startCalc();" onBlur="stopCalc();"> /
<input type=text name="secondBox123" value="" onFocus="startCalc();" onBlur="stopCalc();"> =
<input type=text name="thirdBox123">

<input type=text name="firstBox221" value="1000" onFocus="startCalc();" onBlur="stopCalc();"> /
<input type=text name="secondBox221" value="" onFocus="startCalc();" onBlur="stopCalc();"> =
<input type=text name="thirdBox221">

You need to loop through a series of texboxes, right?

so something like this should work to get the value of your textboxes...

for(i=0; i<document.forms[0].elements.length; i++){
   if(document.forms[0].elements[i].type == 'text')
      var elName = document.forms[0].elements[i].name;
      var elValue = document.forms[0].elements[i].value;
       // Display element name and value
      alert(elName +' = '+ elValue)
   }
}

You need to loop through a series of texboxes, right?

so something like this should work to get the value of your textboxes...

for(i=0; i<document.forms[0].elements.length; i++){
   if(document.forms[0].elements[i].type == 'text')
      var elName = document.forms[0].elements[i].name;
      var elValue = document.forms[0].elements[i].value;
       // Display element name and value
      alert(elName +' = '+ elValue)
   }
}

Hi, thanx for this solution it's near to fix my same problem too...

I have this (php dynamic fields):

<input name="itemID[]" value="<?=$row[id]?>" /><input name="price[]" value="<?=$row[price]?>" /><input name="qty[]" value=""  onFocus="startCalc();" onBlur="stopCalc();" /><input name="subtotal[]" value="" />

Edited 7 Years Ago by accountholder: n/a

This article has been dead for over six months. Start a new discussion instead.