如何仅对lis中选定的行求和

2024-09-30 20:22:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含一些项的网格,我想对所选行的val_itemservico列求和。我的模板对所有行求和。你知道吗

当我单击“Calcular”按钮时,我只想对所选行的val_itemservico列求和。在本例中,我需要知道是否选中了ind_selecionado列。你知道吗

那么,我该怎么做呢?你知道吗

HTML格式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ORÇAMENTO</title>
</head>
<h2>ORÇAMENTO</h2>
<form class=" bd-form-20 " action="#" name="form-name" method="GET">
    {% csrf_token %}

    <label>Serviço:   </label>{{filter.form.servico}}
    <button type = "submit" >OK</button>
    <br><br>
</form>
<tbody>
          <div class=" bd-customhtml-29 bd-tagstyles bd-custom-table">
            <div class="bd-container-inner bd-content-element">
              <table id="table" border="1" rules="all" cellspacing="0" cellpadding="10"> <!--width="100%" border="0" cellspacing="0" cellpadding="2">-->
                <tr>
                    <th>Selecionar</th>
                    <th>ID Item Serviço</th>
                    <th>Item Serviço</th>
                    <th>Valor Serviço</th>
                    <th>Serviço</th>
                </tr>

                {% for item in response.object_list %}
                <tr>
                        <td> <input type="checkbox" id="item.ind_selecionado"></td>
                        <td>{{ item.id }}</td>
                        <td>{{ item.desc_itemservico }}</td>
                        <td>{{ item.val_itemservico }}</td>
                        <td>{{ item.servico_id}}</td>
                </tr>
                {% endfor %}

                {% if response.object_list %}
                    Total: {{ response.object_list|length }}
                {% endif %}
                <br><br>
              </table>

              <br><br>
              Valores:<br>
              {% for item in response.object_list %}
                {{item.val_itemservico}}<br>
              {% endfor %}

              <br><br>
              <span id="sumV"></span>
              <script>
                  var table = document.getElementById("table");
                  getSum();
                  function getSum()
                  {
                    var sumVal = 0;
                    for (var i = 1; i < table.rows.length; i++){
                        sumVal = sumVal + parseInt(table.rows[i].cells[3].innerHTML);

                    }
                    console.log("Sum: " + sumVal)
                  }
              </script>
              <br><br>
              <button onclick="getSum();">Calcular</button>
            </div>
          </div>
</tbody>
</html>

Tags: brdivformidresponsetablebuttonval
1条回答
网友
1楼 · 发布于 2024-09-30 20:22:27

您必须测试循环中用于计算和的check输入的值

for (var i = 1; i < table.rows.length; i++){
    sumVal = sumVal + parseInt(table.rows[i].cells[3].innerHTML);
}

应替换为以下内容:

for (var i = 1; i < table.rows.length; i++){
    if(table.rows[i].cells[1].childNodes[0].checked){
      sumVal = sumVal + parseInt(table.rows[i].cells[3].innerHTML);
    }
}

相关问题 更多 >