Foros del Web » Programando para Internet » Javascript »

Suma mismo input (array)

Estas en el tema de Suma mismo input (array) en el foro de Javascript en Foros del Web. Hola a todos intento sumar mi aporte es un input array y tiene un indice en el id para diferenciarlo... estoy tratando de sumar todos ...
  #1 (permalink)  
Antiguo 02/07/2014, 12:16
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Suma mismo input (array)

Hola a todos intento sumar mi aporte es un input array y tiene un indice en el id para diferenciarlo... estoy tratando de sumar todos esos inputs, pero no consigo tengo este código que supongo tiene muchos errores (estoy trabajando apenas con javascript)
ojala alguien me pueda ayudar de antemano gracias

Código HTML:
<input type='text' name='aporte[]' id='aporte$i' value='' size='5'  />
<script type="text/javascript">
function suma(i) {
    
    var sumar = document.getElementById('aporte' + i).value;
   
    total += sumar;
 document.getElementById('totalapagar').value = total;
    
}
</script>

<input type='text' name='totalapagar' id='totalapagar' value='' size='5' onClick='suma($i);'  /> 
  #2 (permalink)  
Antiguo 02/07/2014, 13:26
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Suma mismo input (array)

Si tienes esos inputs dentro de un form, es fácil recorrerlo.

Código HTML:
Ver original
  1. <form name="productos">
  2.     <input type="text" name="aporte[]" value="10" />
  3.     <input type="text" name="aporte[]" value="20" />
  4.     <input type="text" name="aporte[]" value="30" />
  5.     <input type="button" value="sumar" onclick="suma(this.form)" />
  6.     <input type="text" name="total" id="total" value="" />
  7. </form>

Código Javascript:
Ver original
  1. suma=function(f){
  2.     var total=0;
  3.     for(var x=0;x<f.length;x++){//recorremos los campos dentro del form
  4.         if(f[x].name.indexOf('aporte')!=-1){//si el nombre campo contiene la palabra 'aporte'
  5.             total+=Number(f[x].value);//sumamos, convirtiendo el contenido del campo a número
  6.         }
  7.     }
  8.     document.getElementById('total').value=total;//al final colocamos la suma en algún input.
  9. }
  #3 (permalink)  
Antiguo 02/07/2014, 14:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Suma mismo input (array)

Cita:
Iniciado por ocp001a Ver Mensaje
Si tienes esos inputs dentro de un form, es fácil recorrerlo.

Código HTML:
Ver original
  1. <form name="productos">
  2.     <input type="text" name="aporte[]" value="10" />
  3.     <input type="text" name="aporte[]" value="20" />
  4.     <input type="text" name="aporte[]" value="30" />
  5.     <input type="button" value="sumar" onclick="suma(this.form)" />
  6.     <input type="text" name="total" id="total" value="" />
  7. </form>

Código Javascript:
Ver original
  1. suma=function(f){
  2.     var total=0;
  3.     for(var x=0;x<f.length;x++){//recorremos los campos dentro del form
  4.         if(f[x].name.indexOf('aporte')!=-1){//si el nombre campo contiene la palabra 'aporte'
  5.             total+=Number(f[x].value);//sumamos, convirtiendo el contenido del campo a número
  6.         }
  7.     }
  8.     document.getElementById('total').value=total;//al final colocamos la suma en algún input.
  9. }
Gracias ocp001a funciona perfecto... entiendo que verifica el nombre para sumar.... no me queda muy claro esto suma=function(f) ... f es un elemento de aporte???? bueno es como si tuviera aporte' + i ?????
gracias nuevamente
  #4 (permalink)  
Antiguo 02/07/2014, 14:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Suma mismo input (array)

Cita:
Iniciado por Briss Ver Mensaje
no me queda muy claro esto suma=function(f) ... f es un elemento de aporte?
Es otra forma de declarar una función. Hubiera dado igual si lo hacías así:

Código Javascript:
Ver original
  1. function suma(f){
  2.     //Instrucciones
  3. }

Sin embargo, si declaras a la función de la forma en que nuestro amigo ocp001a indica, las llamadas a la función solamente podrás hacerlas después de la función, no antes como sí podrías hacerlo con la función nombrada que te puse de ejemplo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: input, suma
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 09:09.