Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] suma de decimales en tiempo real en javascript

Estas en el tema de suma de decimales en tiempo real en javascript en el foro de Javascript en Foros del Web. Hola a todo tengo un problema con un codigo en java script que no puedo hacer El codigo suma solo numeros enteros pero quisiera tambien ...
  #1 (permalink)  
Antiguo 02/10/2013, 19:17
 
Fecha de Ingreso: julio-2013
Ubicación: Ibarra
Mensajes: 13
Antigüedad: 10 años, 9 meses
Puntos: 0
suma de decimales en tiempo real en javascript

Hola a todo
tengo un problema con un codigo en java script que no puedo hacer

El codigo suma solo numeros enteros pero quisiera tambien que sume decimales

le cambie a parseFloat pero no funciona
ayuda x fa......

Aqui sta el codigo

Código PHP:
<html>
<
head>
</
head>

<
script type="text/javascript">
function 
sumar(c){
var 
subtotal 0;
campo c.form;
  if(!/^
d*$/.test(c.value)) return;

      for (var 
0campo.length-1i++) {
          if (!/^
d+$/.test(campo[i].value)) continue;
              
subtotal += parseInt(campo[i].value);
      }
document.getElementById('res').value subtotal;
}
</script>


<body>
<form name="b" action="" method="post">
1:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this);" /><br />
2:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this);" /><br />
3:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this);" /><br />
4:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this);" /><br />
5:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this);" /><br />
6:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this);" /><br />
Resultado:<input type="text" id="res" value="0" />
</form>
</body>
</html> 



porfa ayudaaaa

muchas gracias por su tiempo
  #2 (permalink)  
Antiguo 03/10/2013, 07:07
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: suma de decimales en tiempo real en javascript

Pruebalo así, luego intenta descomentado return o //continue
Código HTML:
Ver original
  1. <script type="text/javascript">
  2.    function sumar(c) { //alert(c);
  3.       var campo = document.getElementById('form1');
  4.       var subtotal = 0;
  5.  
  6.       if (!/^d*$/.test(c)) // <-- problema, busca solución
  7.         //return;
  8.      
  9.      for (var i = 0; i < campo.length - 1; i++) {
  10.         if (!/^d+$/.test(campo[i].value)) // <-- problema, busca solución
  11.           // continue;
  12.         subtotal += parseFloat(campo[i].value);
  13.      }
  14.       document.form1.res.value = subtotal;
  15.   }
  16.  
  17. <form id="form1" name="form1" action="" method="post">
  18. 1:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
  19. 2:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
  20. 3:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
  21. 4:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
  22. 5:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
  23. 6:<input type="text" name="sum[]" value="1.1" onKeyUp="sumar(this.value);" /><br />
  24.    Resultado:
  25.    <input type="text" id="res" name="res" value="0" />
  26. </form>
  #3 (permalink)  
Antiguo 03/10/2013, 11:32
 
Fecha de Ingreso: julio-2013
Ubicación: Ibarra
Mensajes: 13
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: suma de decimales en tiempo real en javascript

oyes muchisimas gracias........!!

Si me funciono perfectamente.......!!



Saludos y gracias de nuevo
  #4 (permalink)  
Antiguo 03/10/2013, 13:04
 
Fecha de Ingreso: julio-2013
Ubicación: Ibarra
Mensajes: 13
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: suma de decimales en tiempo real en javascript

Código HTML:
<script type="text/javascript">
   function sumar(c) { //alert(c);
      var campo = document.getElementById('form1');
      var subtotal = 0;

      if (!/^d*$/.test(c)) // <-- problema, busca solución
         //return;
      
      for (var i = 0; i < campo.length - 1; i++) { 
         if (!/^d+$/.test(campo[i].value)) // <-- problema, busca solución
           // continue;
         subtotal += parseFloat(campo[i].value);
      }
       document.form1.res.value = subtotal;
   }
</script>

<form id="form1" name="form1" action="" method="post">
1:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
2:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
3:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
4:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
5:<input type="text" name="sum[]" value="0" onKeyUp="sumar(this.value);" /><br />
6:<input type="text" name="sum[]" value="1.1" onKeyUp="sumar(this.value);" /><br />
   Resultado:
   <input type="text" id="res" name="res" value="0" />
   <input type="submit" value="enviar" />
   <input type="submit" name="enviar2" id="enviar2" value="enviar2" />
</form> 

disculpa

pero si en el ejemplo ahi le aumento 2 boton enviar ya no me suma y me sale error (NaN)

se le puede corregir eso para que si me sume.....??

Ayuda por favor....
  #5 (permalink)  
Antiguo 04/10/2013, 01:10
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: suma de decimales en tiempo real en javascript

Observa esta línea: for (var i = 0; i < campo.length - 1; i++) {
El -1 hace que no tome en cuenta el último input.
Ahora has agregado 2 más.
Los que no tienes que sumar son ahora los últimos 3, por lo tanto: -3

Última edición por bathorz; 04/10/2013 a las 10:27

Etiquetas: funcion, html, input, real, suma, tiempo
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 12:25.