Versão atual:

Soma de valores em Tabela

Boa tarde,

Preciso fazer a soma dos campos de uma tabela e exibir em um campo o Valor total.

Segue HTML

<div class="row">
                                        <div class="form-group col-md-4">
                                            <button type="button" class="btn btn-primary" name="btn_addDespesa" id="btn_addDespesa" onclick="wdkAddChild('tableDespesas');">Adicionar
                                                Despesa</button>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <table class="table" id="tableDespesas" tablename="tableDespesas" noaddbutton="true">
                                            <thead>
                                                <tr>
                                                    <th width="20%">Data</th>
                                                    <th width="50%">Tipo Gasto</th>
                                                    <th width="20%">Valor</th>
                                                </tr>
                                            </thead>
                                            <tbody>
                                                <tr>
                                                   <td>
                                                        <input name="sol_txt_gasto_data" type="text" class="form-control sol_txt_gasto_data date" id="sol_txt_gasto_data" placeholder="data"  />
                                                    </td>
                                                    <td>
                                                        <input name="sol_txt_gasto_tipoGasto" type="text" class="form-control" id="sol_txt_gasto_tipoGasto" placeholder="Tipo Gasto"/>
                                                    </td>
                                                    <td>
                                                        <div class="input-group">
                                                            <div class="input-group-addon">R$</div>
                                                            <input type="text" class="form-control" name="txt_valor" id="txt_valor" onchange="somaProdutos()" />
                                                        </div>
                                                    </td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </div>                                
                                    <div class="row">
                                        <div class="form-group col-md-3">
                                            <label for="txt_valorTotal">Valor Total</label>
                                            <input type="text" class="form-control" name="txt_valorTotal" id="txt_valorTotal" readonly />
                                        </div>
                                    </div>

SCRIPT

function somaProdutos() {

    var soma = 0;
    var valor = $("input[id^='txt_valorProduto___']").each(function(index,value){
        $(this).val();
    });

     for (i=0; i< valor.length; i++){
        soma += parseFloat($(valor[i]).val());
        soma + valor
     }
     console.log(soma);


     document.getElementById('txt_valorTotal').value = soma.toLocaleString('pt-br', {minimumFractionDigits: 2});

}

O QUE OCORRE? Quando o campo faz a soma com valores pequenos, ele soma corretamente. Quando eu coloco um valor igual ou maior que 1.000, ele faz uma soma errada dos valores. Também preciso refazer a soma dos valores, toda vez que é excluída uma linha da tabela.

Podem me ajudar?

Versões (2):

Ver a versão formatada

Soma de valores em Tabela

Comentário

new question