0

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

自动更新 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);
});
4

3 回答 3

3

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

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

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

于 2013-07-22T15:39:52.533 回答
0

You need to add some logic to keep a running total. Here is a forked fiddle with the solution:

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);
于 2013-07-22T15:55:17.190 回答
0

像这样的东西会起作用:

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

jsfiddle在这里。

于 2013-07-22T15:37:43.680 回答