0

我的代码有问题。我创建了一个简单的 jquery 文件,它自动对表中的每一行求和。我的问题是我无法得到正确的行总和。这就是我所做的。

在我的jQuery中

$('[id^=total]').on('change',function() {

        var index = this.id.match(/\d+/)[0];
        var total_input = parseInt($('#total'+index).val());

        var total = 0;

        $('[id^=total]').each(function(index){
            total += parseFloat($(this).val()?$(this).val():0);
        });

        var totalAll = $('#total_amt_due').val(total.toFixed(2));           
});

在我的 HTML

<table border="1">
        <tr>
            <td>
                <input type='text' name='total[]' id='total1' value='' />
            </td>
        </tr>
        <tr>
            <td>
                <input type='text' name='total[]' id='total2' value='' />
            </td>
        </tr>
        <tr>
            <td>
                <input type='text' name='total[]' id='total3' value='' />
            </td>
        </tr>
        <tr>
            <td>
                <input type='text' name='total[]' id='total4' value='' />
            </td>
        </tr>
        <tr>
            <td>
                <input type='text' name='total[]' id='total5' value='' />
            </td>
        </tr>
        <tr>
            <td>
                <input type="text" class="k-textbox" value="0.00" style="color: red; text-align: right;
                    font-family: courier" name="total_amt_due" id="total_amt_due" readonly="readonly" />
            </td>
        </tr>
</table>

我在 PHP 中动态创建了这个表。但为了简单起见,我删除了循环。我不擅长jquery。那么你能给我一个简单的答案来创建自动总和吗?

这是小提琴:http: //jsfiddle.net/rochellecanale/K8UNQ/3/

4

2 回答 2

3

您对显示总数的行有疑问,因为它的 id 也以“total”开头。只需更改其 id(让我们说 amt_due 而不是 total_amt_due):

<td>
         <input type="text" class="k-textbox" value="0.00" style="color: red; text-align: right; font-family: courier" name="total_amt_due" id="amt_due" readonly="readonly" />
     </td>

看看这个:小提琴

于 2013-10-04T05:48:02.313 回答
0
var total = 0;
$('[id^=total]').on('change', function () {
    if ($.trim($(this).val()) != '') {
        total += parseFloat($(this).val() ? $(this).val() : 0);
    }
    var totalAll = $('#total_amt_due').val(total.toFixed(2));
});

工作演示

于 2013-10-04T05:47:12.700 回答