1

我目前正在为计算机维修技术人员编写一个小插件,现在我正在尝试对发票部分进行编码,但运气不佳!

我已经从数据库中填充了字段,但我正在尝试使用 jquery 来更新行总计和发票总额。

这是我正在尝试做的快速图像!

在此处输入图像描述 我试图让它更新页面加载的总数以及单位成本和数量文本字段中的值发生变化时。

$(document).ready(function() {
    $("#invoiceitems tbody tr").each(function() {
        $(this).change(function() {
            updateTotal();
        });
    });
});

function updateTotal() {

    //Calculate Subtotal for each item
    var quantity = $('.quantity').val();
    var price = $('.price').val();
    var subtotal = parseInt(quantity) * parseFloat(price);
    $('.subtotal').text(subtotal);
    //Calculate Grand Total
    var sum = 0;
    $('.linetotal').each(function() {
        sum += parseFloat($(this).text());
    });
    $('#grandTotal').html(parseFloat(sum));
}​

在这里找到了这段代码,但我真的不知道,也无法让它工作!

一些指导/帮助将不胜感激!

非常感谢杰斯

4

2 回答 2

1

以这个简单的 HTML 为例:

<table>
<tr>
<td>
<input type="text" name="unitCost[]" id="unitCost_1" value="15.99" class="editable"/>
</td>
<td>
<input type="text" name="quantity[]" id="quantity_1" value="1" class="editable"/>
</td>
</tr>
<tr>
<td>
<input type="text" name="unitCost[]" id="unitCost_2" value="2.50" class="editable"/>
</td>
<td>
<input type="text" name="quantity[]" id="quantity_2" value="1" class="editable"/>
</td>
</tr>
</table>

我想你会想要改变你的 jQuery 看起来像这样:

$(document).ready(function() {
    updateTotal();

    $(".editable").live("change", function() {
        updateTotal();
    });
});

updateTotal()如果没有看到您的实际 HTML,很难说您的功能是否有问题

于 2012-09-07T20:59:14.160 回答
1

看起来你是一个完全的 jQuery 新手.. !! 好的开始虽然..不难拿起它..

这里 .price 、 .quantity 和 .lineTotal 对应于他们正在讨论的列的类名。grandTotal 是表中 Total 的 id。

我已经 为您尝试处理的案例提供了一个更新的工作示例..应该是一个好的开始..

但请注意我没有添加任何条件来检查用户输入是否有效......尝试在推出时添加这些条件......如果您在解码时遇到任何困难,请告诉我。

于 2012-09-07T21:10:49.897 回答