El valor que debes de parsear a entero es el del cada caja de texto pues llegan como cadenas. Tú estás parseando el acumulado.
También puedes usar los
métodos iterativos del objeto Array
y hacer algo como esto:
Código Javascript
:
Ver originalvar total = [].map.call(document.querySelectorAll("[id^=total_dimcual]"), function(elem){
return parseInt(elem.value);
}).reduce(function(prev, next){
return prev + next;
});
console.log(total); //Muestra la suma total de los valores de los <input> cuyo id empieza por "total_dimcual"
El método
.map()
crea un nuevo array con los valores del array pasado como argumento o por los valores devueltos por la llamada de retorno, que en este caso devuelve el valor entero de cada caja de texto, mientras que el método
.reduce()
reduce a un solo elemento a todos los elementos del array adjunto, que en este caso es el array resultante del método anterior. En la llamada de retorno de este método, devuelvo la suma del valor previo (al iniciar, es el primero de los elementos del array) con el valor actual (al iniciar, es el segundo de los elementos del array).
Saludos