Javascript calculations

cuemasterfl

Supreme [H]ardness
Joined
Jul 5, 2001
Messages
4,181
I have a page where a user chooses a value from a drop down (hours worked per day) and the other fields take preset numbers and display certain calculations, but I keep getting "NaN" values instead of the correct values. I'm not very good with Javascript and I am sure I am doing something silly, so any help would be appreciated :)

Form code:
Code:
<form name="comparisonchart">
      <table width="727" border="0">
      <tr></tr>
      <tr>
        <td width="443" valign="top">&nbsp;</td>
        <td width="151" colspan="3" valign="top">&nbsp;</td>
        <td width="58" valign="top">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top"><div align="left">Note: Figures based on National Averages and Time</div></td>
        <td colspan="3" valign="top"><div align="right">hours worked per day</div></td>
        <td valign="top" bgcolor="#CCCCCC"><label>
          <select name="hours" onChange="calculateinfo(form)">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
          </select>
        </label></td>
      </tr>
      <tr>
        <td valign="top"><div align="left">Studies done on MARS equipment testing 5/8&quot; - 1&quot; meters</div></td>
        <td colspan="3" valign="top"><div align="right"></div></td>
        <td valign="top">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top">&nbsp;</td>
        <td colspan="3" valign="top">&nbsp;</td>
        <td valign="top">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top">&nbsp;</td>
        <td colspan="3" valign="top">
          <div align="right"></div></td>
        <td valign="top">&nbsp;</td>
      </tr>
      </table>
      <p>&nbsp;</p>
    <table width="727" border="0">
      <tr>
        <td width="321" align="left">&nbsp;</td>
        <td width="9">&nbsp;</td>
        <td width="88">&nbsp;</td>
        <td width="25">&nbsp;</td>
        <td width="65">&nbsp;</td>
        <td width="11">&nbsp;</td>
        <td width="88">&nbsp;</td>
        <td width="25">&nbsp;</td>
        <td width="57">&nbsp;</td>
      </tr>
      <tr>
        <td align="left">&nbsp;</td>
        <td colspan="3"><strong>MARS</strong></td>
        <td>&nbsp;</td>
        <td colspan="3"><strong>Existing</strong></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="center"><strong>Comparison    Parameter</strong></div></td>
              </tr>
          </table>
        </div></td>
        <td colspan="3"><strong>Test Bench</strong></td>
        <td>&nbsp;</td>
        <td colspan="3"><strong>Bench</strong></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td align="left">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">Number of 5/8&quot;-1&quot; Meters Tested During One Test</div></td>
              </tr>
          </table>
        </div></td>
        <td align="right">&nbsp;</td>
        <td height="24"><div align="left">
          <input name="meterstested" type="text" value="12"  size="8" maxlength="2" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td height="24"><div align="left">
          <input name="meterstested2" type="text" value="6" size="8" maxlength="2" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td height="24">&nbsp;</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">Time to Set Meters and Spools</div></td>
        <td align="right">&nbsp;</td>
        <td height="24"><div align="left">
          <input name="timetoset" type="text" value="18"  size="8" maxlength="3" readonly="readonly" />
        </div></td>
        <td height="24">mins</td>
        <td>(no bolts)</td>
        <td>&nbsp;</td>
        <td height="24"><div align="left">
          <input name="timetoset2" type="text" id="timetoset2" value="40" size="8" maxlength="3" readonly="readonly" />
        </div></td>
        <td height="24">mins</td>
        <td height="24">(fully)</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">Time to Test Meters (Using AWWA standards)</div></td>
            </tr>
          </table>
        </div></td>
        <td align="right">&nbsp;</td>
        <td height="24"><div align="left">
          <input name="timetotest" type="text" value="21.8" size="8" maxlength="4" readonly="readonly" />
        </div></td>
        <td height="24">mins</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td height="24"><div align="left">
          <input name="timetotest2" type="text" value="21.8" size="8" maxlength="4" readonly="readonly" />
        </div></td>
        <td height="24">mins</td>
        <td height="24">&nbsp;</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">Record Keeping Time</div></td>
              </tr>
          </table>
        </div></td>
        <td align="right">&nbsp;</td>
        <td height="24"><div align="left">
          <input name="recordtime" type="text" value="2" size="8" maxlength="2" readonly="readonly" />
        </div></td>
        <td height="24">mins</td>
        <td>(handheld)</td>
        <td>&nbsp;</td>
        <td height="24"><div align="left">
          <input name="recordtime2" type="text" value="15" size="8" maxlength="2" readonly="readonly" />
        </div></td>
        <td height="24">mins</td>
        <td height="24">(log)</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">Number of Meters Tested in One Day</div></td>
              </tr>
          </table>
        </div></td>
        <td align="right">&nbsp;</td>
        <td height="24"><div align="left">
          <input name="oneday" type="text" id="oneday" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td height="24"><div align="left">
          <input name="oneday2" type="text" id="oneday2" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td height="24">&nbsp;</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">AverageXLabor Rate U.S.</div></td>
              </tr>
          </table>
        </div></td>
        <td align="right"><div align="right">$</div></td>
        <td height="24"><div align="left">
          <input name="laborrate" type="text" id="laborrate" value="24.00" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">/hour</td>
        <td>(1 person)</td>
        <td><div align="right">$</div></td>
        <td height="24"><div align="left">
          <input name="laborrate2" type="text" id="laborrate2" value="48.00" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">/hour</td>
        <td height="24">(2 people)</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">Total Daily Cost ($)</div></td>
              </tr>
          </table>
        </div></td>
        <td align="right"><div align="right">$</div></td>
        <td height="24"><div align="left">
          <input name="dailycost" type="text" id="dailycost" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td>&nbsp;</td>
        <td><div align="right">$</div></td>
        <td height="24"><div align="left">
          <input name="dailycost2" type="text" id="dailycost2" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td height="24">&nbsp;</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">Cost Per Meter ($)</div></td>
              </tr>
          </table>
        </div></td>
        <td align="right"><div align="right">$</div></td>
        <td height="24"><div align="left">
          <input name="costpermeter" type="text" id="costpermeter" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td>&nbsp;</td>
        <td><div align="right">$</div></td>
        <td height="24"><div align="left">
          <input name="costpermeter2" type="text" id="costpermeter2" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td height="24">&nbsp;</td>
      </tr>
      <tr>
        <td height="24" align="left"><div align="left">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="left">Meters Tested Per Year</div></td>
              </tr>
          </table>
        </div></td>
        <td align="right"><div align="right"></div></td>
        <td height="24"><div align="left">
          <input name="peryear" type="text" id="peryear" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td>&nbsp;</td>
        <td><div align="right"></div></td>
        <td height="24"><div align="left">
          <input name="peryear2" type="text" id="peryear2" size="8" maxlength="6" readonly="readonly" />
        </div></td>
        <td height="24">&nbsp;</td>
        <td height="24">&nbsp;</td>
      </tr>
      <tr>
        <td align="left">&nbsp;</td>
        <td align="right"><div align="right"></div></td>
        <td><div align="left"></div></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td><div align="right"></div></td>
        <td><div align="left"></div></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
   
      </tr>
      <tr>
        <td align="left"><div align="right">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="right"><strong>Cost To Test Meters with MARS Equipment</strong></div></td>
              </tr>
          </table>
        </div></td>
        <td align="right"><div align="right">$</div></td>
        <td><div align="left">
          <input name="costmars" type="text" id="costmars" size="8" maxlength="6" readonly="readonly" />
        </div></td>
      
      </tr>
      <tr>
        <td align="left"><div align="right">
          <table cellspacing="0" cellpadding="0">
            <tr>
              <td width="362"><div align="right"><strong>Cost of Existing Equipment to Test Same Quantity</strong></div></td>
              </tr>
          </table>
        </div></td>
        <td align="right"><div align="right">$</div></td>
        <td><div align="left">
          <input name="costexist" type="text" id="costexist" size="8" maxlength="6" readonly="readonly" />
        </div></td>
     
      </tr>
      <tr>
        <td align="left"><div align="right"><strong>TOTAL SAVINGS</strong></div></td>
        <td align="right"><div align="right">$</div></td>
        <td><div align="left">
          <input name="savings" type="text" id="savings" size="8" maxlength="6" readonly="readonly" />
        </div></td>
       
      </tr>
      <tr>
        <td align="left">&nbsp;</td>
       
      </tr>
      <tr>
        <td align="left">&nbsp;</td>
     
      </tr>
    </table>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    </form>

Javascript code:
Code:
<script type="text/javascript">
function calculateinfo(form) {
	var minutes = parseInt(form.hours.selected * 60);
	
	form.oneday.value = (minutes/(eval(form.timetoset.value) + eval(form.timetotest.value) + eval(form.recordtime.value)))*form.meterstested.value;
	form.oneday2.value = (minutes/(eval(form.timetoset2.value) + eval(form.timetotest2.value) + eval(form.recordtime2.value)))*form.meterstested2.value;

	form.dailycost.value = eval(form.hours.value) * eval(form.laborrate.value);
	form.dailycost2.value = eval(form.hours.value) * eval(form.laborrate2.value);
	
	form.costpermeter.value = eval(form.dailycost.value)*1 / eval(form.oneday.value)*1;
	form.costpermeter2.value = eval(form.dailycost2.value) / eval(form.oneday2.value);
	
	form.peryear.value = eval(form.oneday.value) * 260;
	form.peryear2.value = eval(form.oneday2.value) * 260;

	form.costmars.value = eval(form.costpermeter.value) * eval(form.peryear.value);
	form.costexist.value = eval(form.costpermeter2.value) * eval(form.peryear.value);

	form.savings.value = minutes;

}	
</script>
 
Oh and the last line "form.savings.value = minutes;", I put that there just to see if I could see if the minutes were being calculated correctly. That's not what should really go there.
 
Nevermind, I got it.

The correction I had to make was changing var minutes = parseInt(form.hours.selected * 60);

to

var minutes = parseInt(form.hours.value * 60);

doh! :)
 
Back
Top