每当用户更改(即编辑)html表中的列中的值时,应自动重新计算总计吗?我该如何实现?

舒巴姆博尔加雷

在此处输入图片说明

我想构建一个这样的页面,其中B列应该是可编辑的,并且每当用户在B列中更改值时,都应该相应地重新计算Total。

我想构建一个这样的页面,其中B列应该是可编辑的,并且每当用户在B列中更改值时,都应该相应地重新计算Total。

我想构建一个这样的页面,其中B列应该是可编辑的,并且每当用户在B列中更改值时,都应该相应地重新计算Total。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style>
table, td, th {
  border: 1px solid black;
}

table {
  border-collapse: collapse;

}

th {

}
</style>
</head>
<body>


<table id="myTable">
  <col width="130">
  <col width="80">
  <tr>
    <th>A</th>
    <th>B</th>

  </tr>
  <tr>
    <td>Rent</td>
    <td class="someClass" contenteditable="true">400</td>

  </tr>
  <tr>
    <td>Food</td>
    <td class="someClass" contenteditable="true">200</td>

  </tr>
  <tr>
    <td>Entertainment</td>
    <td class="someClass" contenteditable="true">100</td>

  </tr>
  <tr>
    <td>Transportation</td>
    <td class="someClass" contenteditable="true">50</td>

  </tr>

  <tr>
    <th>Total</th>
    <td class="someTotalClass">200</td>

  </tr>
</table>
<script>

 function sumOfColumns(){

        var totalQuantity = 0;
        var totalPrice = 0;
        $(".someClass").each(function(){
            totalQuantity += parseInt($(this).html());
            $(".someTotalClass").html(totalQuantity);
        });

        $(".classPrice").each(function(){
            totalPrice += parseInt($(this).html());
            $(".someTotalPrice").html(totalPrice);
        });
    }
sumOfColumns()


</script>


</body>
</html>
闪亮的

.blur() 会将处理函数绑定到模糊JavaScript事件-您可以将其添加到script标签中当前函数的下面,这样就可以了。

通常我会说use,.change()但这似乎不适用于contenteditable div。如果您有可能改为使用<input>而不是,<div contenteditable="true">那么这可能是您的替代选择

<!DOCTYPE html>
<html>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <style>
    table,
    td,
    th {
      border: 1px solid black;
    }
    
    table {
      border-collapse: collapse;
    }
    
    th {}
  </style>
</head>

<body>


  <table id="myTable">
    <col width="130">
    <col width="80">
    <tr>
      <th>A</th>
      <th>B</th>

    </tr>
    <tr>
      <td>Rent</td>
      <td class="someClass" contenteditable="true">400</td>

    </tr>
    <tr>
      <td>Food</td>
      <td class="someClass" contenteditable="true">200</td>

    </tr>
    <tr>
      <td>Entertainment</td>
      <td class="someClass" contenteditable="true">100</td>

    </tr>
    <tr>
      <td>Transportation</td>
      <td class="someClass" contenteditable="true">50</td>

    </tr>

    <tr>
      <th>Total</th>
      <td class="someTotalClass">200</td>

    </tr>
  </table>
  <script>
    function sumOfColumns() {
      var totalQuantity = 0;
      var totalPrice = 0;
      $(".someClass").each(function() {
        totalQuantity += parseInt($(this).html());
        $(".someTotalClass").html(totalQuantity);
      });

      $(".classPrice").each(function() {
        totalPrice += parseInt($(this).html());
        $(".someTotalPrice").html(totalPrice);
      });
    }

    sumOfColumns();

    $('.someClass').blur(function() {
      sumOfColumns()
    });
  </script>


</body>

</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档