I have a code that dynamically generates several inputs . Also I have a function that should add the value entered into the inputs . The problem is that instead of adding it concatenates the fields. The strange thing is that I did the same process elsewhere and the sum works.
Javascript Code:
var tam_grade_produto = document.querySelectorAll("#tam_grade_produto");
var quant_produto = document.querySelectorAll("#quant_produto");
var quant_total_produto = document.querySelector("#quant_total_produto").value;
function preencheTotalProduto(){
var calc_quant_total_produto = 0;
for(var i=0;i<tam_grade_produto.length;i++){
calc_quant_total_produto += quant_produto[i].value;
}
quant_total_produto.textContent = calc_quant_total_produto;
}
document.addEventListener("onchange",function(event){
event.preencheTotalProduto();
});
preencheTotalProduto();
The code below is within a for
and generates fields that I need:
<tr>
<td><kbd><label id="tam_grade_produto"><?= $tamanho['tamanho']; ?></label></kbd></td>
<td><input size="3" class="form-control" id="quant_produto" type="number" onchange="preencheTotalProduto()" min="1" max="<?= $tamanho['estoque']; ?>"></td>
<td><input size="3" readonly="true" class="form-control" type="number" onchange="preencheTotalProduto()" value="<?= $tamanho['estoque']; ?>"></td>
</tr>
And this is the snippet of code that should hold the sum:
<div>Total de pares: <label id="quant_total_produto">0</label></div>
But when filling in the value of a 3 inputs with values of 1, 2 and 3, for example, in the total of pairs does not appear 6 and yes 0123. It seems that it is concatenating instead of adding. Anyone know how to say?