Foros del Web » Programando para Internet » Javascript »

Suma de inputs generados por javascript

Estas en el tema de Suma de inputs generados por javascript en el foro de Javascript en Foros del Web. Hola a todos y gracias de antemano por su ayuda, ya llevo varios días con este problema y el tiempo se me acaba, tengo un ...
  #1 (permalink)  
Antiguo 02/09/2014, 16:02
Avatar de elessarjulius  
Fecha de Ingreso: mayo-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Suma de inputs generados por javascript

Hola a todos y gracias de antemano por su ayuda, ya llevo varios días con este problema y el tiempo se me acaba, tengo un formulario en el cual se deben capturar los folios e importes de distintas facturas que fueron pagadas con un solo cheque, la idea es que al capturar los importes de las facturas que presuntamente se están pagando se sumen y cuadre con la cantidad del cheque y se guarde en una base de datos el número de cheque con el que fueron pagadas, el formulario solo muestra dos inputs de inicio, uno del folio y otro para el importe pero si se requiere agregar más inputs tiene un botón que llama a una función javascript que genera dos nuevos inputs según la cantidad de facturas a capturar, mi problema esta en como hacer que se sume el importe de cada factura en otro input que lleva por id totalImporte para que una vez terminada la captura se compruebe el total.

Dejo mi código para que me puedan apoyar

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<script language="javascript" type="text/javascript">
var contador=1;
function agregarPago(nombreDiv){
var nvodiv=document.createElement('div');
var string1="Pago N° ";
var counter=(contador+1);
if(counter<10){
var string2="00"+(contador+1);
}
else if(counter<100){
var string2="0"+(contador+1);
}
else{
var string2=(contador+1);
}
var string3=", Folio:<input type='text' id='folio' name='folio[]' />Importe:<input type='text' id='importe' name='importe[]' />";
var finalstring=string1+string2+string3;
nvodiv.innerHTML=finalstring;
document.getElementById(nombreDiv).appendChild(nvo div);
contador++;
}
</script>
</head>

<body>

<form method="post">
<p><input type="button" id="masPagos" value="Agregar + pagos" onclick="agregarPago('nvoPago');" />Total de importe de facturas:<input type="text" id="totalImporte" value="" /></p>
<div id="nvoPago" style=" width:750px; height:500px; overflow:auto; ">
Pago N° 001, Folio:<input type="text" id="folio" name="folio[]" />Importe:<input type="text" id="importe" name="importe[]" />
</div>
</form>
</div>

</div>

</body>
</html>
  #2 (permalink)  
Antiguo 02/09/2014, 20:56
Avatar de ggomez91  
Fecha de Ingreso: octubre-2008
Mensajes: 181
Antigüedad: 15 años, 6 meses
Puntos: 13
Respuesta: Suma de inputs generados por javascript

Hola. Ponle una class a tus inputs que almacenan los importes individuales y luego puedes hacer un for sobre document.getElementsByClassname(tuClass) y obtienes el value de cada uno, sumandolos en una variable, Al final solo pon el total en el input del total. Saludos!
  #3 (permalink)  
Antiguo 03/09/2014, 05:16
 
Fecha de Ingreso: septiembre-2014
Ubicación: Vernezuela
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Suma de inputs generados por javascript

Lo que trata de explicar ggomez91 algo mas o menos asi


Cita:
var form1;
form1=document.getElementsByClassname("form1").val ue

var form2;
form2=document.getElementsByClassname("form2").val ue


if(form1==form2)(

print ("tal");
)
recuerda usar parseInt para que los valores sean calculables en javascript ya que si no al sumarse o al operar actuaran como cadena..

Etiquetas: formulario, generados, html, input, inputs, 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:02.