Foros del Web » Programando para Internet » Javascript »

Sumar valores de varios input

Estas en el tema de Sumar valores de varios input en el foro de Javascript en Foros del Web. Buenas tardes: Tengo un formulario con 10 campos input en el que se van a ingresar datos numéricos y necesito crear una rutina que, según ...
  #1 (permalink)  
Antiguo 23/08/2012, 13:12
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Sumar valores de varios input

Buenas tardes:
Tengo un formulario con 10 campos input en el que se van a ingresar datos numéricos y necesito crear una rutina que, según vayan ingresando y/o modificando los datos ingresados, se muestre el total. Se que es simple, pero hoy estoy mal mal mal y no logro concentrarme (es por el plazo de entrega).

Saliendo del paso cree esta función rudimentaria

Cita:
function promedio()
{
var dato=0;
dato=dato+document.getElementById("cantidad1").val ue*1;
dato=dato+document.getElementById("cantidad2").val ue*1;
dato=dato+document.getElementById("cantidad3").val ue*1;
dato=dato+document.getElementById("cantidad4").val ue*1;
dato=dato+document.getElementById("cantidad5").val ue*1;
dato=dato+document.getElementById("cantidad6").val ue*1;
dato=dato+document.getElementById("cantidad7").val ue*1;
dato=dato+document.getElementById("cantidad8").val ue*1;
dato=dato+document.getElementById("cantidad9").val ue*1;
dato=dato+document.getElementById("cantidad10").va lue*1;

document.getElementById("promedio").value=dato*1;
}
que se activa con el evento onChange en cada uno de los 10 input mostrados (cantidad1, cantidad2, etc.)

¿Cómo puedo simplificar este código?

Agradezco desde ya el apoyo brindado.

Un saludo desde Lima, Perú
  #2 (permalink)  
Antiguo 23/08/2012, 13:19
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Sumar valores de varios input

Cita:
Iniciado por freesoftwarrior Ver Mensaje
Buenas tardes:
Tengo un formulario con 10 campos input en el que se van a ingresar datos numéricos y necesito crear una rutina que, según vayan ingresando y/o modificando los datos ingresados, se muestre el total. Se que es simple, pero hoy estoy mal mal mal y no logro concentrarme (es por el plazo de entrega).

Saliendo del paso cree esta función rudimentaria



que se activa con el evento onChange en cada uno de los 10 input mostrados (cantidad1, cantidad2, etc.)

¿Cómo puedo simplificar este código?

Agradezco desde ya el apoyo brindado.

Un saludo desde Lima, Perú
Saludos hermano peruano

podrias hacerlo de la siguiente forma por ejemplo

Código Javascript:
Ver original
  1. var nodes = document.getElementsByTagName('input')
  2. var total=0;
  3. for(var x=0;obj[x],x++){
  4. if(ob[x].name.indexOf("cantidad")!=-1){
  5. total+=obj[x].value;
  6. }
  7. document.getElementById("promedio").value = total;
  8. }

EL unico problema con este codigo es que recorre todos los input que existe en tu formulario otra forma de como podrias hacerlo es asignando por ejemplo un name comun en cada input y en nodes pondrias esto document.getElementsByName('myname')
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 23/08/2012, 14:31
Avatar de fjrueda  
Fecha de Ingreso: marzo-2008
Ubicación: Bucaramanga
Mensajes: 313
Antigüedad: 16 años, 1 mes
Puntos: 35
Respuesta: Sumar valores de varios input

una solucion y tomando en cuenta lo que dice Dradi7 .....

Una solución con JQuery es la siguiente:

Código Javascript:
Ver original
  1. $('.valorequipo').live('keyup',function(){
  2.        var add = 0;
  3.         $('.valorequipo').each(function(){
  4.             add += Number($(this).val());
  5.          
  6.         });
  7.          $('#CompraTotalcompra').val(add);
  8.     });

En este caso todos los inputs que quiero sumar de ben tener la clase "valorequipo".
Nótese que en lugar de "bind()" se usa "live()". Esto es por que los campo se van agregando dinámicamente. Si se usara bind(), solo se sumarían los campos presente en el formulario al momento de ejecutar el script.
  #4 (permalink)  
Antiguo 23/08/2012, 15:04
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Sumar valores de varios input

Cita:
Iniciado por fjrueda Ver Mensaje
una solucion y tomando en cuenta lo que dice Dradi7 .....

Una solución con JQuery es la siguiente:

Código Javascript:
Ver original
  1. $('.valorequipo').live('keyup',function(){
  2.        var add = 0;
  3.         $('.valorequipo').each(function(){
  4.             add += Number($(this).val());
  5.          
  6.         });
  7.          $('#CompraTotalcompra').val(add);
  8.     });

En este caso todos los inputs que quiero sumar de ben tener la clase "valorequipo".
Nótese que en lugar de "bind()" se usa "live()". Esto es por que los campo se van agregando dinámicamente. Si se usara bind(), solo se sumarían los campos presente en el formulario al momento de ejecutar el script.
Tu código esta bien para que, pero me parece demasiado solo para un ejemplo pequeño me refiero a tener que usar una librería para este ejemplo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 25/08/2012, 07:42
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Sumar valores de varios input

Mil gracias a todos por sus respuestas. Mis disculpas por la demora pero cogí una gripe y recién me he podido reintegrar a mis quehaceres.

Un saludo desde Lima, Perú

Etiquetas: formulario, input
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 16:07.