Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema sumando campos con javascript

Estas en el tema de Problema sumando campos con javascript en el foro de Programación General en Foros del Web. Saludos foristas, a ver si algún compañero podra darme luces sobre el tema: Necesito sumar los posibles aportes realizados al momento de pagar una deuda ...
  #1 (permalink)  
Antiguo 10/05/2012, 11:28
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Problema sumando campos con javascript

Saludos foristas, a ver si algún compañero podra darme luces sobre el tema:
Necesito sumar los posibles aportes realizados al momento de pagar una deuda monetaria tomando en cuenta que pueden ser pagos parciales con efectivo, cheque , tarjeta de débito y tarjeta de crédito.

Hice una función en javascript la cual llamo con los eventos onblur y/o onchange. Hasta acá todo bien.

El problema se me presenta cuando salto entre los diferentes <input type="text" ...>, ya que el total no se me recalcula como debiera. y si lo hago con el uso del evento onclick me presenta una cantidad de decimales que no deseo.

Funcion:
function valida_moneda(entrada, tipopago){
if (document.getElementById("t_ef").value) document.getElementById("t_ef").value = parseFloat(document.getElementById("t_ef").value) ; else document.getElementById("t_ef").value = 0;
if (document.getElementById("t_deb").value) document.getElementById("t_deb").value = parseFloat(document.getElementById("t_deb").value) ; else document.getElementById("t_deb").value = 0;
if (document.getElementById("t_cre").value) document.getElementById("t_cre").value = parseFloat(document.getElementById("t_cre").value) ; else document.getElementById("t_cre").value = 0;
if (document.getElementById("t_che").value) document.getElementById("t_che").value = parseFloat(document.getElementById("t_che").value) ; else document.getElementById("t_che").value = 0;
va1 = parseFloat(document.getElementById("t_ef").value);
va2 = parseFloat(document.getElementById("t_deb").value) ;
ve3 = parseFloat(document.getElementById("t_cre").value) ;
ve4 = parseFloat(document.getElementById("t_che").value) ;
document.getElementById("t_tpgo2").value = va2 + va1 + ve3 + ve4;
document.getElementById("t_tpgo2").value = document.getElementById("t_tpgo2").toFixed(2);
return;
}


llamadas desde los inputs:
<input type="text" name="t_ef" id="t_ef" size="16" maxlength="15" value="<?php echo (isset($_REQUEST['t_ef'])) ? $_REQUEST['t_ef'] : ''; ?>" title="Monto Efectivo." tabindex="5" onfocus="valida_moneda(this.value, 1);" onchange="valida_moneda(this.value, 1);" /> Pesos
<input type="text" name="t_deb" id="t_deb" size="15" maxlength="15" value="<?php echo (isset($_REQUEST['t_deb'])) ? $_REQUEST['t_deb'] : ''; ?>" title="Monto tarjeta de d&eacute;bito." tabindex="7" onfocus="valida_moneda(this.value, 2);" onchange="valida_moneda(this.value, 2);" > Pesos
<input type="text" name="t_cre" id="t_cre" size="15" maxlength="15" value="<?php echo (isset($_REQUEST['t_cre'])) ? $_REQUEST['t_cre'] : ''; ?>" title="Monto tarjeta de cr&eacute;dito." tabindex="9" onfocus="valida_moneda(this.value, 3);" onchange="valida_moneda(this.value, 3);"> Pesos
<input type="text" name="t_che" id="t_che" size="15" maxlength="15" value="<?php echo (isset($_REQUEST['t_che'])) ? $_REQUEST['t_che'] : ''; ?>" title="Monto cheque." onfocus="valida_moneda(this.value, 4);" onchange="valida_moneda(this.value, 4);" tabindex="10"> Pesos


Alguna idea de que es lo que estoy haciendo mal?

Gracias por su tiempo.
  #2 (permalink)  
Antiguo 12/05/2012, 07:49
Avatar de ARICARRARO  
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 227
Antigüedad: 13 años, 4 meses
Puntos: 10
Respuesta: Problema sumando campos con javascript

Tal vez te sirva de algo:

Código Javascript:
Ver original
  1. <script language="javascript">
  2. /*aritmética básica*/
  3. function sumar(a,b){
  4. var a=document.getElementById('a');
  5. var b=document.getElementById('b');
  6. a=parseFloat(a.value);
  7. b=parseFloat(b.value);
  8. var result1=document.getElementById('suma');
  9. result1.value=a+b;
  10. }
  11. function restar(a,b){
  12. var a=document.getElementById('a');
  13. var b=document.getElementById('b');
  14. a=parseFloat(a.value);
  15. b=parseFloat(b.value);
  16. var result2=document.getElementById('resta');
  17. result2.value=a-b;
  18. }
  19. function producto(a,b){
  20. var a=document.getElementById('a');
  21. var b=document.getElementById('b');
  22. a=parseFloat(a.value);
  23. b=parseFloat(b.value);
  24. var result3=document.getElementById('produce');
  25. result3.value=a*b;
  26. }
  27. function division(a,b){
  28. var a=document.getElementById('a');
  29. var b=document.getElementById('b');
  30. a=parseFloat(a.value);
  31. b=parseFloat(b.value);
  32. var result4=document.getElementById('divide');
  33. result4.value=a/b;
  34. }
  35.  
  36. function limpiar(){
  37. document.getElementById('a').value="";
  38. document.getElementById('b').value="";
  39. document.getElementById('suma').value="";
  40. document.getElementById('resta').value="";
  41. document.getElementById('produce').value="";
  42. document.getElementById('divide').value="";
  43. }
  44.  
  45. </script>
  46.  
  47. <body>
  48. Número 1: <input type="text" id="a"  value=""/><br/>
  49. Número 2: <input type="text" id="b"  value=""/><br/>
  50. Suma: <input type="text" id="suma" name="suma" value=""/><button onClick="javascript:sumar(document.getElementById('a'),document.getElementById('b'));" class="c-icon" title="sumar">Suma</button><br/>
  51. <br/>
  52. Resta: <input type="text" id="resta" name="resta" value=""/><button onClick="javascript:restar(document.getElementById('a'),document.getElementById('b'));" class="c-icon" title="restar">Resta</button><br/>
  53. <br/>
  54. Producto: <input type="text" id="produce" name="produce" value=""/><button onClick="javascript:producto(document.getElementById('a'),document.getElementById('b'));" class="c-icon" title="multiplicar">Producto</button><br/>
  55. <br/>
  56. División: <input type="text" id="divide" name="divide" value=""/>
  57. <button onClick="javascript:division(document.getElementById('a'),document.getElementById('b'));" class="c-icon" title="dividir">División</button><br/>
  58. <br/>
  59. <button onClick="javascript:limpiar();" class="c-icon" title="activar evento">Limpiar</button><br/></body>
  #3 (permalink)  
Antiguo 15/05/2012, 19:04
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Problema sumando campos con javascript

Gracias amigo pero no es lo que busco. Quizá no me supe explicar.

Etiquetas: campos, event, java, javascript, sumando
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 18:28.