代码之家  ›  专栏  ›  技术社区  ›  chris

Jquery计算问题

  •  1
  • chris  · 技术社区  · 16 年前

    以下jquery位有一个小问题。它用于计算行项目和合计。

    例如

    line_item 1: qty x rate + vat (if vatable) = subtotal
    
    line_item 1: qty x rate + vat (if vatable) = subtotal
    
    subtotal: sum(qtys x rates)
    vat: sum (subtotal x vat formula)
    total : sum(subtotals)
    

    这是守则,任何帮助都将不胜感激;

    function vatable(checkbox) {
        if(checkbox.attr('checked')) {
            return 14/100;
        } else {
            return 0;
        }
    }
    
    function recalc(){
        jQuery("input[class^=ltotal]").calc(
            "qty * rate + (((qty * rate) * vat))",
            {
                qty: jQuery("input[class^=lqty]"),
                rate: jQuery("input[class^=lrate]"),
                vat : vatable(jQuery("input.lvat"))
            },
            function (s){
                return s.toFixed(2);
            },
            function ($this){
                var sum = $this.sum();
                if(jQuery("input[class^=lvat]").attr('checked')) {
                    jQuery("input[class=subtotal]").calc( ((sum/114)*100).toFixed(2));
                    jQuery("input[class=vat]").calc(((sum/114)*14).toFixed(2));
                    jQuery("input[class=total]").calc((sum).toFixed(2));
                } else {
                    jQuery("input[class=subtotal]").calc( sum.toFixed(2) );
                    jQuery("input[class=vat]").calc(0);
                    jQuery("input[class=total]").calc( sum.toFixed(2) );
                }
            }
        );
    }
    
    $(document).ready( function () {
        $('input[class^=lqty]').bind('keyup', recalc);
        $('input[class^=lvat]').click(recalc);
        $('input[class^=lrate]').bind('keyup', recalc);
        recalc();
    });
    
    0 回复  |  直到 8 年前