Foros del Web » Programando para Internet » Javascript »

Imposible realizar una suma !!

Estas en el tema de Imposible realizar una suma !! en el foro de Javascript en Foros del Web. Hola amigos, quisiera pedirles su ayuda frente a este problema que tengo y con mi poca experiencia no he podido resolver. Tengo un formulario que ...
  #1 (permalink)  
Antiguo 17/02/2005, 09:21
 
Fecha de Ingreso: agosto-2004
Ubicación: Stgo de Chile
Mensajes: 64
Antigüedad: 19 años, 8 meses
Puntos: 0
Imposible realizar una suma !!

Hola amigos, quisiera pedirles su ayuda frente a este problema que tengo
y con mi poca experiencia no he podido resolver.

Tengo un formulario que obtiene el resultado de 10 multiplicaciones,(el usuario ingresa los números en unos textbox).

El resultado se almacena en una variable valsub y se muestra en un textbox llamado subtotal.

A este resultado debo restarle o sumarle una cantidad que el usuario ingresará en un textbox suma o de resta.

La resta no tiene ninguna dificultad, lo hace bien, pero cuando al subtotal quiero sumarle una cantidad, no me resulta

El resultado final de estas operaciones se muestra en otro textbox llamado total.

Alguien sabe que ocurre?


<SCRIPT>
function calculate()
{
var val1,val2,val3,val4,val5,val6,val7,val8,val9,val10 ,valsub,sumar,restar,res1,res2;

val1 = ((document.calcform.price1.value)*(document.calcfo rm.quantity1.value))
val2 = ((document.calcform.price2.value)*(document.calcfo rm.quantity2.value))
val3 = ((document.calcform.price3.value)*(document.calcfo rm.quantity3.value))
val4 = ((document.calcform.price4.value)*(document.calcfo rm.quantity4.value))
val5 = ((document.calcform.price5.value)*(document.calcfo rm.quantity5.value))
val6 = ((document.calcform.price6.value)*(document.calcfo rm.quantity6.value))
val7 =((document.calcform.price7.value)*(document.calcf orm.quantity7.value))
val8 = ((document.calcform.price8.value)*(document.calcfo rm.quantity8.value))
val9 = ((document.calcform.price9.value)*(document.calcfo rm.quantity9.value))
val10 = ((document.calcform.price10.value)*(document.calcf orm.quantity10.value))
valsub = ((val1) + (val2) +(val3) + (val4) + (val5) + (val6) + (val7) + (val8) + (val9) +(val10))

document.calcform.subtotal.value = valsub

sumar = document.calcform.sumarle.value
res1= ((valsub) + (sumar))
document.calcform.total.value = res1


restar = document.calcform.descuento.value
res2= ((valsub) - (restar))
document.calcform.total.value = res2
}
</SCRIPT>

en el body está el botón
<INPUT name="button2" type="button" ONCLICK="calculate()" Value="Calcular">
  #2 (permalink)  
Antiguo 17/02/2005, 09:34
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años
Puntos: 0
Has probado de hacer un parseInt(sumar) antes de realizar la suma de

res1= ((valsub) + (sumar))

Ejemplo...

Código:
sumar = parseInt(document.calcform.sumarle.value);
res1= ((valsub) + (sumar));
document.calcform.total.value = res1;
a ver si pasando el String a integer funciona...

sino pastea todo el codigo, incluidos los campos de formularios, xq me da palo crearme el formulario a mano...
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #3 (permalink)  
Antiguo 17/02/2005, 10:25
 
Fecha de Ingreso: agosto-2004
Ubicación: Stgo de Chile
Mensajes: 64
Antigüedad: 19 años, 8 meses
Puntos: 0
Estimado MarkSock, realizé lo que has sugerido y el problema se mantiene, te mando el codigo completo haber si aparace algo, el ejemplo es de solo dos multiplicaciones.

<html>
<head>
<title>Ensayo</title>

<SCRIPT>
function calculate()
{
var val1,val2,valsub,sumar,restar,res1,res2;
val1 = ((document.calcform.price1.value)*(document.calcfo rm.quantity1.value))
val2 = ((document.calcform.price2.value)*(document.calcfo rm.quantity2.value))
valsub = ((val1) + (val2))
document.calcform.subtotal.value = valsub

sumar = parseInt(document.calcform.sumarle.value);
res1= ((valsub) + (sumar))
document.calcform.total.value = res1

restar = parseInt(document.calcform.descuento.value);
res2= ((valsub) - (restar))
document.calcform.total.value = res2
}
</SCRIPT>
</head>

<body onload="this.document.calcform.price1.focus()","ca lculate">
<FORM name="calcform">
<table width="80%" border="0" align="center">
<tr>
<td><TABLE width="50%" border=0 align="center" class="Yuyo" >
<TR>
<TD width="32%"><center>Valor </center></TD>
<TD width="32%"><center>Cantidad</center></TD>
</TR>
<TR>
<TD><INPUT type="text" name="price1" ONCHANGE="calculate()"></TD>
<TD><INPUT type="text" name="quantity1" ONCHANGE="calculate()"></TD>
</TR>
<TR>
<TD><INPUT type="text" name="price2" ONCHANGE="calculate()"></TD>
<TD><INPUT type="text" name="quantity2" ONCHANGE="calculate()"></TD>
</TR>
</TABLE>
<p>&nbsp;</p>
<table width="46%" border="0" align="center" class="Yuyo">
<tr>
<td><div align="right"></div></td>
<td colspan="2"><center>
</center></td>
</tr>
<tr>
<td><div align="right">Subtotal</div></td>
<td colspan="2"><center>
<INPUT type="text" name="subtotal" >
</center></td>
</tr>
<tr>
<td><div align="right">Sumarle:</div></td>
<td colspan="2"><center>
<input type="text" name="sumarle">
</center></td>
</tr>
<tr>
<td><div align="right">Restarle:</div></td>
<td colspan="2"><center>
<input type="text" name="descuento" >
</center></td>
</tr>
<tr>
<td><div align="right">Total:</div></td>
<td colspan="2"><center>
<INPUT type="text" name="total">
</center></td>
</tr>
<tr>
<td colspan="3"><center>
</center></td>
</tr>
<tr>
<td colspan="3"><center>
<INPUT name="button" type="button" ONCLICK="calculate()" Value="Calcular">
</center></td>
</tr>
<tr>
<td colspan="3"><div align="right"></div>
<center>
</center></td>
</tr>
</table>
<p>&nbsp;</p></td>
</tr>
</table>
</form>
</body>
</html>
  #4 (permalink)  
Antiguo 17/02/2005, 10:35
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años
Puntos: 0
Te faltava comprobar que res1 y res2 fuera mayor que 0 antes de imprimir el resultado en el campo total... sino escribe NaN i tendrias que haberlo puesto en blanco antes de volver a escribir.

ahora ya va.


Código:
<html>
<head>
<title>Ensayo</title>

<SCRIPT>
function calculate(){
var val1,val2,valsub,sumar,restar,res1,res2;
val1 = ((document.calcform.price1.value)*(document.calcform.quantity1.value));
val2 = ((document.calcform.price2.value)*(document.calcform.quantity2.value));
valsub = ((val1) + (val2));
document.calcform.subtotal.value = valsub;

sumar = parseInt(document.calcform.sumarle.value);
res1= ((valsub) + (sumar));
if(res1>0){
	document.calcform.total.value = res1;
}

restar = parseInt(document.calcform.descuento.value);
res2= ((valsub) - (restar));
if(res2>0){
	document.calcform.total.value = res2;
}
}
</SCRIPT>
</head>

<body onload="document.calcform.price1.focus();">
<FORM name="calcform">
<table width="80%" border="0" align="center">
<tr>
<td><TABLE width="50%" border=0 align="center" class="Yuyo" >
<TR>
<TD width="32%"><center>Valor </center></TD>
<TD width="32%"><center>Cantidad</center></TD>
</TR>
<TR>
<TD><INPUT type="text" name="price1" ONCHANGE="javascript:calculate();"></TD>
<TD><INPUT type="text" name="quantity1" ONCHANGE="javascript:calculate();"></TD>
</TR>
<TR>
<TD><INPUT type="text" name="price2" ONCHANGE="javascript:calculate();"></TD>
<TD><INPUT type="text" name="quantity2" ONCHANGE="javascript:calculate();"></TD>
</TR>
</TABLE>
<p>&nbsp;</p>
<table width="46%" border="0" align="center" class="Yuyo">
<tr>
<td><div align="right"></div></td>
<td colspan="2"><center>
</center></td>
</tr>
<tr>
<td><div align="right">Subtotal</div></td>
<td colspan="2"><center>
<INPUT type="text" name="subtotal" >
</center></td>
</tr>
<tr>
<td><div align="right">Sumarle:</div></td>
<td colspan="2"><center>
<input type="text" name="sumarle">
</center></td>
</tr>
<tr>
<td><div align="right">Restarle:</div></td>
<td colspan="2"><center>
<input type="text" name="descuento" >
</center></td>
</tr>
<tr>
<td><div align="right">Total:</div></td>
<td colspan="2"><center>
<INPUT type="text" name="total">
</center></td>
</tr>
<tr>
<td colspan="3"><center>
</center></td>
</tr>
<tr>
<td colspan="3"><center>
<INPUT name="button" type="button" ONCLICK="javascript:calculate();" Value="Calcular">
</center></td>
</tr>
<tr>
<td colspan="3"><div align="right"></div>
<center>
</center></td>
</tr>
</table>
<p>&nbsp;</p></td>
</tr>
</table>
</form>
</body>
</html>
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #5 (permalink)  
Antiguo 17/02/2005, 11:03
 
Fecha de Ingreso: agosto-2004
Ubicación: Stgo de Chile
Mensajes: 64
Antigüedad: 19 años, 8 meses
Puntos: 0
Problema superado Muchas Gracias por el aporte !!
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 13:29.