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
  • 相关阅读:
    设计模式学习每日一记(1.简单工厂模式)
    poj1068
    设计模式学习每日一记(2.外观模式)
    qooxdoo一句话备忘录[不断更新]
    设计模式学习每日一记(4.抽象工厂)
    C# 各种数据类型的最大值和最小值常数
    ASP.NET中实现二级或多级域名(修改UrlRewrite)
    网站中定时发送邮件
    重提URL Rewrite(1):IIS与ASP.NET
    Server Application Unavailable 的解决方法
  • 原文地址:https://www.cnblogs.com/insus/p/6498632.html
Copyright © 2011-2022 走看看