更新总金额总和

时间:2013-07-22 15:33:09

标签: jquery jquery-ui

我想在总和框中更新总自动总和。

Sum Box中总列数的自动更新总和。

这是怎么回事,这是我的代码。

JS小提琴:http://jsfiddle.net/anosim/6WX5Q/5/

这是HTML:

<table id="items">
    <thead>
        <th>Unit</th>
        <th>Qty</th>
        <th>Total</th>
    </thead>
    <tbody>
        <tr>
            <td><input class="input3 unit" name="unit_1" type="text" value=""></td>
            <td><input class="input3 qty" name="qty_1" type="text" value=""></td>
            <td><input class="input3 total" name="total_1" type="text" value=""></td>
        </tr>
        <tr>
            <td><input class="input3 unit" name="unit_1" type="text" value="" autocomplete="off"></td>
            <td><input class="input3 qty" name="qty_1" type="text" value="" autocomplete="off"></td>
            <td><input class="input3 total" name="total_1" type="text" value="" autocomplete="off"></td>
        </tr>
    </tbody>
</table>

<br clear="both">

<table id="items">
    <thead>
        <th>Sum</th>
    </thead>
    <tbody>
        <tr>
            <td><input class="input3 sum" name="sum" type="text" value="" autocomplete="off"></td>
       </tr>
    </tbody>
</table>

这是Jquery:

$('.qty').keyup(function(e) {
    var val1 = parseInt($(this).val());
    var val2 = parseInt($(this).parent().siblings('td').find('.unit').val());
    var total = val1 * val2;
    if(isNaN(total)) {
        var total = 0;
    }
    $(this).parent().siblings('td').find('.total').val(total);

    // get sum
    $('.sum').val(total);
});

3 个答案:

答案 0 :(得分:3)

我添加到您的小提琴中,您可以使用.each函数累计最后一列

$(".total").each(function(index,item){...});

在这里小提琴:http://jsfiddle.net/6WX5Q/12/

答案 1 :(得分:0)

这样的事情会起作用:

var sum=0;
$('.total').each(function(index){sum+=( parseFloat($(this).val()) || 0); }) ;
// get total amount
$('.sum').val(sum );

jsfiddle here.

答案 2 :(得分:0)

您需要添加一些逻辑来保持运行总计。这是解决方案的分叉小提琴:

http://jsfiddle.net/pAQxc/

var runningTotal = 0;
    $('.total').each(function(){
        var tempVal = parseInt($(this).val());

        if(isNaN(tempVal)) {
            tempVal = 0;
        }
       runningTotal = runningTotal + parseInt(tempVal); 
    });

    // get sum
    $('.sum').val(runningTotal);