JavaScript - Suma de inputs en tabla con multiples filas error

 
Vista:

Suma de inputs en tabla con multiples filas error

Publicado por rodrigo (1 intervención) el 12/04/2021 23:17:32
tengo el siguiente ejemplo de suma de inputs con js y me calcula la suma de la primera fila bien pero de la segunda no , necesito ayuda porfavor que necesito este ejemplo para una tabla con muchas filas y que funcione el calculo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
 
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
 
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 
 
<table id="second_table" class="table table-bordered table-hover">
<th>
    a
</th>
<th>
    b
</th>
<th>
    total
</th>
 
 
<tr>
    <td><input type='number' ' min='0' value='0' id="uno"></td><td><input type='number' ' min='0' value='0' id="dos"></td><td><input type='number' class='entrada' min='0' value='0' id="tres"></td><td class='subtotal'>0</td>
</tr>
<tr>
    <td><input type='number' ' min='0' value='0' id="uno"></td><td><input type='number' ' min='0' value='0' id="dos"></td><td><input type='number' class='entrada' min='0' value='0' id="tres"></td><td class='subtotal'>0</td>
</tr>
</table>
 
 
 
  <div class="form-group  col-sm-4">
    <label for="totaltotal">Total:</label>
      <input type="text" class="form-control" disabled id="totaltotal">
  </div>
	           <script>
        $("#second_table").on("input", "input", function() {
  var input = $(this);
 
  var columns = input.closest("tr").children();
  var uno = $("#uno").val();
  var dos = $("#dos").val();
  var tres = $("#tres").val();
  var calculated = parseFloat(uno) + parseFloat(dos) + parseFloat(tres);
 
  columns.eq(3).text(calculated.toFixed(2));
 
  sumar_columnas();
 
});
 
function sumar_columnas(){
var sum=0;
    //itera cada input de clase .subtotal y la suma
    $('.subtotal').each(function() {
            sum += parseFloat($(this).text());
    });
    //cambia valor del total y lo redondea a la segunda decimal
    $('#totaltotal').val(sum.toFixed(2));
}
</script>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder