zoukankan      html  css  js  c++  java
  • 实现表格自动计算

    先来看看实时操作动画演示:

    每一行进行小计,数量 X 单价。而总计则是把表格中小计列所有行进行相加。

    Html code:

    <table id="Order">
        <tr>
            <th>费用名目</th>
            <th>数量</th>
            <th>单价</th>
            <th>小计</th>
        </tr>
        <tr class="trData">
            <td>ItemA</td>
            <td><input type="text" class='txtQuantity' /></td>
            <td><input type="text" class='txtPrice' /></td>
            <td><input type="text" class='txtAmount' /></td>
        </tr>
        <tr class="trData">
            <td>ItemB</td>
            <td><input type="text" class='txtQuantity' /></td>
            <td><input type="text" class='txtPrice' /></td>
            <td><input type="text" class='txtAmount' /></td>
        </tr>
        <tr class="trData">
            <td>ItemC</td>
            <td><input type="text" class='txtQuantity' /></td>
            <td><input type="text" class='txtPrice' /></td>
            <td><input type="text" class='txtAmount' /></td>
        </tr>
        <tr class="trData">
            <td colspan="3" style="text-align:right;">总计</td>        
            <td><span id="total"></span></td>
        </tr>
    </table>
    Source Code


    计算总计:

    jQuery code:

    CalcSum();
    
            function CalcSum()
            {
                var total_sum = 0;
                $("#Order .txtAmount").each(function () {
                    var val = $(this).val();
                    if ($.isNumeric(val)) {
                        total_sum += parseFloat(val);
                    }                  
                });
    
                $("#total").html(total_sum);
            }
    Source Code

    数量列任何一个文件框数据变化事件:

    jQuery code:

     $("#Order").on('input', '.txtQuantity', function () {
                var self = $(this);
                var tr = self.closest("tr");
    
                var quantity = self.val();
                var Price = tr.find(".txtPrice").val();
    
                var amount = 0
                if ($.isNumeric(quantity) && $.isNumeric(Price)) {
                    amount = quantity * Price;
                }
                tr.find(".txtAmount").val(amount);
                
                CalcSum();
            });
    Source Code

    表中单价列任一文本框数据值变化事件:

    jQuery code:

    $("#Order").on('input', '.txtPrice', function () {
                var self = $(this);
                var tr = self.closest("tr");
    
                var quantity = tr.find(".txtQuantity").val();
                var Price = self.val();
    
                var amount = 0
                if ($.isNumeric(quantity) && $.isNumeric(Price)) {
                    amount = quantity * Price;
                }            
                tr.find(".txtAmount").val(amount);
    
                calcSum();
            });
    Source Code
  • 相关阅读:
    【学习笔记】Hive
    《深入浅出数据分析》笔记
    SQL vs. HQL 语法对比
    log4net日志使用方法
    NLog日志使用方法
    VS2010,C#项目改动后无法编译
    Jquery easyui的datagrid在初始化的时候会请求两次URL?
    【硬件】Realtek RTL9210固件部分参数翻译及移动硬盘WinToGo推荐调优方案
    【小记】RedHat8(CentOS) 下连接数据库ODBC报 SSL Error:141A318A 问题
    【小记】[新手常见错误] C++ 指针的引用
  • 原文地址:https://www.cnblogs.com/insus/p/6498632.html
Copyright © 2011-2022 走看看