Foros del Web » Programando para Internet » Javascript »

¿Cómo mostrar el valor resultante en un text?

Estas en el tema de ¿Cómo mostrar el valor resultante en un text? en el foro de Javascript en Foros del Web. Hola a to@s!! Tengo una especie de calculadora, y necesito que el tercer valor se introduzca automáticamente con el resultado de los 2 primeros y ...
  #1 (permalink)  
Antiguo 27/07/2006, 09:04
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
¿Cómo mostrar el valor resultante en un text?

Hola a to@s!!

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(10Math.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> 
El problema es que asigna el valor y lo toma en cuenta al hacer la operación, pero no lo muestra en el campo y necesito que se muestre

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...
  #2 (permalink)  
Antiguo 27/07/2006, 10:20
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Hola de nuevo...

¿Nadie me puede echar un cable? Yo pensaba que esto para los expertos es pan comido.

He estado buscando y rebuscando por todo el foro pero no hay forma... no encuentro la solución...

Una ayudica por favor....
  #3 (permalink)  
Antiguo 27/07/2006, 11:06
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Gracias a Caricatos he resuelto lo de los decimales y redondeos, pero sigo sin solucionar la parte que me debería mostrar el resultado en el tercer campo

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">

<
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>&& frm.val1.value<99999) && (frm.val2.value>&& frm.val2.value<99999)) {
var 
res = (val1*14.10)+(val2*7.05)+(val3*9.40);
frm.result.value parseFloat(res).toFixed(2);
} else {
frm.result.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>
</td>
</tr>
<tr>
<td align="center">
<input type="button" class="button" value="Calcular" onClick="calcula();">
</td>
</tr>
<tr>
<td>
Total <input type="text" name="result" size="11" maxlength="10">
</td>
</tr>
</form>
</table>

</div>



</td>
</tr>
</table>

</center>

</body>
</html> 
¿Alguien me echa una mano con el resto? Gracias....
  #4 (permalink)  
Antiguo 27/07/2006, 11:53
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Solucionado!!

Hola de nuevo a tod@s!!

Al final lo he solucionado con una funcion "intermedia"

Aquí lo dejo por si le sirve a alguien...

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">
<
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;
var 
result1 =  val2*val2;
if ((
frm.val1.value>&& frm.val1.value<99999) && (frm.val2.value>&& frm.val2.value<99999)) {
var 
res = (val1*14.10)+(val2*7.05)+(result1*9.40);
frm.result.value parseFloat(res).toFixed(2);
} else {
frm.res.value 0;
alert ("Debes indicar valores númericos en los campos indicados.");
}
}
function 
suma() {
var 
frm document.calc;
var 
val1 frm.val1.value;
var 
val2 frm.val2.value;
frm.result1.value val2*val2;
}
</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="5">
</td>
</tr>
<tr>
<td>
Valor 2 <input type="text" name="val2" size="3" maxlenght="6" onchange="javascript:suma();">
</td>
</tr>
<tr>
<td>
Resultado 1 <input type="text" name="result1" size="3" maxlenght="6" value="" readonly>
</td>
</tr>
<tr>
<td align="center">
<input type="button" class="button" value="Calcular" onClick="calcula();">
</td>
</tr>
<tr>
<td>
Totales <input type="text" name="result" size="11" maxlength="10">
</td>
</tr>
</form>
</table>

</div>



</td>
</tr>
</table>

</center>

</body>
</html> 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:38.