Tengo una especie de calculadora, y necesito que el tercer valor se introduzca automáticamente con el resultado de los 2 primeros y salga el total en un 4º, mejor pongo el código y después explico el detalle:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
Number.prototype.decimal = function(n) {
pot = Math.pow(10, Math.round(n));
return parseInt(this * pot) / pot;
}
</script>
<title>Calculadora</title>
</head>
<body onmouseout="window.status=' '" onmouseover="window.status=' ';return true">
<script language="JavaScript">
function calcula() {
var frm = document.calc;
var val1 = frm.val1.value;
var val2 = frm.val2.value;
var val3 = val2*val2;
if ((frm.val1.value>0 && frm.val1.value<99999) && (frm.val2.value>0 && frm.val2.value<99999)) {
var res = (val1*12.00)+(val2*5.30)+(val3*2.10);
frm.res.value = res.decimal(2);
} else {
frm.res.value = 0;
alert ("Debes indicar valores númericos en los campos indicados.");
}
}
</script>
<center>
<div align="center">
<table width="300" border="0" cellspacing="0" cellpadding="10">
<form name="calc">
<tr>
<td valign=top class="centro grande">Calculadora</td>
</tr>
<tr>
<td>
Valor 1 <input type="text" name="val1" size="3" maxlenght="6">
</td>
</tr>
<tr>
<td>
Valor 2 <input type="text" name="val2" size="3" maxlenght="6" onchange="document.calc.value=val3;">
</td>
</tr>
<tr>
<td>
Resultado 1 <input type="text" name="val3" size="3" maxlenght="6" value="" readonly> <!-- Aquí debe verse el valor que se asigna en el campo anterior -->
</td>
</tr>
<tr>
<td align="center">
<input type="button" class="button" value="Calcular" onClick="calcula();">
</td>
</tr>
<tr>
<td>
Total <input type="text" name="res" size="11" maxlength="10"> <!-- Aquí se ve el valor total de la operación -->
</td>
</tr>
</form>
</table>
</div>
</td>
</tr>
</table>
</center>
</body>
</html>

Por otra parte, con el script me deja 2 decimales, pero no me redondea correctamente, es decir, si la cifra siguiente es >=5 el 2º decimal debería aumentar 1 y si no lo es debería quedarse igual, pero tampoco lo hace....
Gracias por adelantado, como siempre, seguro que los maestros de por aquí conocen la solución...