【问题标题】:How can I get my formset data to refresh after a cell is updated with an integer?在使用整数更新单元格后,如何让我的表单集数据刷新?
【发布时间】:2021-08-19 03:27:27
【问题描述】:

我已经玩了几天了,今天取得了一些进步。当用户在表中输入值时,我只是尝试添加值。这种代码很有效。

  $(document).ready(function() {
    $("input[name$='-line_item_total']").on('keyup', function(){
        var total = 0;
        console.log('hello1');
        // on every keyup, loop all the elements and add all the results
        $("input[name$='-line_item_total']").each(function(index, element) {
            var val = parseFloat($(element).val());
            if( !isNaN( val )){
               total += val;
            }
        });
        $("#id_total_total").val(total);
    });
  });

有问题的表格是动态表格,用户可以输入任意数量的行。我遇到的问题是,只有当用户更新以 -line_item_total 开头的第一个行项目时,这些值才会全部引用。我想要实现的是任何时候以 -line_item_total 结尾的任何行都被更新,然后重新计算整个列。如前所述,此代码的工作原理是它似乎确实可以看到所有值并重新计算用户是否返回原始单元格并更新初始值,但这并不是我希望实现的。如果有更好的方法来实现这一点,我也对此持开放态度。我很困惑,因为所有单元格都以 -line_item_total 结尾,所以我希望每次都会根据我提供的代码进行重新计算,但它不是那样工作的。提前感谢您的任何想法。

【问题讨论】:

    标签: javascript jquery django-views django-forms django-templates


    【解决方案1】:

    所以我通过这个 SO...https://stackoverflow.com/questions/36787479/calculations-in-a-dynamically-added-rows-using-jquery 找到了我的问题的答案

    这是我的最终代码...

    <script type="text/javascript">
    
      $(document).ready(function(){
        $(document).on('keyup',"input[name$='-line_item_total']",function(){
            update_total();
        });
      });
    
      function update_total()
      {
        var total = 0;
        $("input[name$='-line_item_total']").each(function(index, element) {
            var val = parseFloat($(element).val());
            if( !isNaN( val )){
                 total += val;
              }
            });
            $("#id_total_total").val(total);
      }
    </script>
    

    【讨论】:

      猜你喜欢
      • 2018-01-10
      • 1970-01-01
      • 2013-06-02
      • 2011-09-21
      • 1970-01-01
      • 2013-01-25
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多