View Full Version : Conversion script won't work
jordonk
04-14-2003, 12:18 PM
I'm pretty much JavaScript-illiterate. I know just enough to edit a script the way I want. I copied a free "length converter" script from a web page and modified it on one of my own. Can somebody see why the script on this original page, http://www.jsr.communitech.net/length.htm , works, but on my page, http://www.angelfire.com/fl4/superbuddies/other/units.html , it doesn't?
Your help is appreciated. Thank you!
wox3-iO
04-14-2003, 01:11 PM
So you've added a few more units to your counter? Check your coding, You've probably forgotten something or there's just some mistake.
beetle
04-14-2003, 03:47 PM
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function doConversions( f )
{
var value = parseInt( f.valueToConvert.value, 10 );
if ( isNaN( value ) )
{
alert( 'The value you entered, "' + f.valueToConvert.value + '" is not a number' );
f.valueToConvert.focus();
f.valueToConvert.select();
return;
}
else
{
f.valueToConvert.value = value;
}
var conversions = {
'DG': 1,
'IN': 4/3,
'NL': 3,
'PM': 4,
'HD': 16/3,
'SF': 8,
'SN': 12,
'FT': 16,
'CB': 24,
'YD': 48,
'EL': 60,
'FH': 96,
'RD': 264,
'FR': 10560,
'MI': 84480
};
var unit = f.unit.options[f.unit.selectedIndex].value;
var base = value * conversions[unit];
for ( var i in conversions )
{
if ( typeof i == 'string' && i.length == 2 )
{
f.elements[i.toLowerCase()].value = ( base / conversions[i] ).round( 8 );
}
}
}
Number.prototype.round = function( places )
{
var factor = Math.pow( 10, places );
return Math.round( this * factor ) / factor;
}
</script>
</head>
<body>
<form name="convert">
<table border=1>
<tr>
<th>Unit</th><th>Number</th>
</tr>
<tr>
<td>
<select name="unit">
<option value="DG">digit</option>
<option value="IN">inch</option>
<option value="NL">nail</option>
<option value="PM">palm</option>
<option value="HD">hand</option>
<option value="SF">shaftment</option>
<option value="SN">span</option>
<option value="FT">foot</option>
<option value="CB">cubit</option>
<option value="YD">yard</option>
<option value="EL">ell</option>
<option value="FH">fathom</option>
<option value="RD">rod</option>
<option value="FR">furlong</option>
<option value="MI">mile</option>
</select>
</td>
<td>
<input type="text" name="valueToConvert" size="20" maxlength="20" value="0">
</td>
</tr>
<tr>
<td>digit</td>
<td><input type="text" name="dg" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>inch</td>
<td><input type="text" name="in" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>nail</td>
<td><input type="text" name="nl" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>palm</td>
<td><input type="text" name="pm" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>hand</td>
<td><input type="text" name="hd" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>shaftment</td>
<td><input type="text" name="sf" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>span</td>
<td><input type="text" name="sn" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>foot</td>
<td><input type="text" name="ft" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>cubit</td>
<td><input type="text" name="cb" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>yard</td>
<td><input type="text" name="yd" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>ell</td>
<td><input type="text" name="el" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>fathom</td>
<td><input type="text" name="fh" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>rod</td>
<td><input type="text" name="rd" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>furlong</td>
<td><input type="text" name="fr" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td>mile</td>
<td><input type="text" name="mi" size="20" maxlength="20" value="0" readonly="true"></td>
</tr>
<tr>
<td align="center">
<input type="Reset" value="Start Over">
</td>
<td align="center">
<input type="button" value="Convert" onclick="doConversions( this.form )">
</td>
</tr>
</table>
</form>
</body>
</html>
I realize this is metric, but you may want to check out what I have here (http://www.kurthost.net/smscript/).
Not the best, but it works well :)
By the way beetle, your code isn't valid xhtml :D
beetle
04-14-2003, 03:57 PM
Never said it was :p it's only a couple-tags away from validity anyways.
Besides, the conversion script works, and that's the point :D
Yes, very true, very true. I have to agree that it works very well.
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.