使用jquery计算和小计的分组

时间:2012-11-28 15:41:26

标签: jquery html math

我正在开发一个Web应用程序,想要创建类似发票计算的东西,但是要使用子组,所以最后我需要组总计和小计的结果。

这是我到目前为止所得到的:Fiddle

$(function() {
    $("#items").keyup(function(event) {
        var total = 0;
        $("#items .targetfields").each(function() {
            var qty = parseInt($(this).find(".quantity").val());
            var rate = parseInt($(this).find(".rate").val());
            var subtotal = qty * rate;
            $(this).find(".subtotal").val(subtotal);
            if (!isNaN(subtotal)) total += subtotal;
        });
        $("#total").html(total);
    });
})

最终,我正在努力实现这样的目标:

enter image description here

我找到了很多关于发票计算的例子,但没有关于小组或小计的例子。

我希望有人能用一个小例子来帮助我。

1 个答案:

答案 0 :(得分:1)

看看这是否是您的想法:http://jsfiddle.net/yaMRQ/23/

<table class="items">
    <tr class="targetfields"> 
        <td><input type="text" name="quantity" class="quantity" /></td>
        <td><input type="text" name="rate" class="rate" size="5" /></td>
        <td><input type="text" name="sub_total" class="subtotal" /></td> 
    </tr> 
    <tr class="targetfields"> 
        <td><input type="text" name="quantity" class="quantity" /></td>
        <td><input type="text" name="rate" class="rate" size="5" /></td>
        <td><input type="text" name="sub_total" class="subtotal" /></td> 
    </tr>
    <tr>
        <td>Group:</td>
        <td colspan="2" align="right" class="g_total"></td>
    </tr>
</table>
<table class="items">
    <tr class="targetfields"> 
        <td><input type="text" name="quantity" class="quantity" /></td>
        <td><input type="text" name="rate" class="rate" size="5" /></td>
        <td><input type="text" name="sub_total" class="subtotal" /></td> 
    </tr> 
    <tr class="targetfields"> 
        <td><input type="text" name="quantity" class="quantity" /></td>
        <td><input type="text" name="rate" class="rate" size="5" /></td>
        <td><input type="text" name="sub_total" class="subtotal" /></td> 
    </tr>
    <tr>
        <td>Group:</td>
        <td colspan="2" align="right" class="g_total"></td>
    </tr>
</table>
<br/>---<br/>Total: <span id="total"></span>

$(function() {
    $(".items").keyup(function(event) {
     var total = 0;
     $(".items").each(function(){
         var gtotal = 0;
         $(this).find(".targetfields").each(function() {
             var qty = parseInt($(this).find(".quantity").val());
             var rate = parseInt($(this).find(".rate").val());
             var subtotal = qty * rate;
             $(this).find(".subtotal").val(subtotal);
             if(!isNaN(subtotal))
                 gtotal+=subtotal;
         });
         $(this).find(".g_total").html("EUR "+gtotal); 
         total+=gtotal
     });
     $("#total").html("EUR "+total);
    });
})​