我在开发一个POS系统。这里我需要计算每个项目的独特总价。我编写了一个onKeyUp函数来计算金额。在单行中它的工作非常完美。如果我修改第二个产品的折扣并添加2,它将影响第一行。
屏幕截图: HTML 代码:
屏幕截图: HTML 代码:
<table class="table table-striped table-hover" id="item_table">
<thead id="thead">
<tr class="bg-primary">
<th>#</th>
<th>Product Name</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Discount</th>
<th>Discount 2</th>
<th>Amount</th>
<th><i class="fa fa-close"></i></th>
</tr>
</thead>
<tbody id="item_list">
<tr>
<td><?php echo $n; ?></td>
<td><?php echo $product_name; ?></td>
<td><input type="number" class="form-control" name="quantity[]" id="quantity" value="1" min="1" step="1"></td>
<td id="sprice"><?php echo $selling_price; ?></td>
<td id="discount"><?php echo $discount_rate; ?>%</td>
<td><input type="text" class="form-control" name="discount2" id="discount2"></td>
<td id="total"><?php echo number_format($total,2,'.', ''); ?></td>
<td><span><i class="fa fa-trash"></i></span></td>
</tr>
</tbody>
</table>
这里的PHP代码是用于第一次向表中插入行的,它没有问题。对于一个记录它可以运作。
JavaScript:
//Product Row Calculation
function calculateItemPrice() {
var sprice = $("#item_table #sprice").text();
var quantity = $("#item_table #item_list #quantity").val();
var discount = $("#item_table #discount").text().slice(0, -1);
var discount2 = $("#item_table #item_list #discount2").val();
$('tr').each(function() {
var totalDiscount = ((sprice * quantity) * discount / 100);
var price = ((((sprice * quantity) - totalDiscount)) - discount2);
var total = parseFloat(price).toFixed(2);
$("#total").html(total);
});
}
$("#item_table").on("keyup", "#quantity", function() {
calculateItemPrice();
});
$("#item_table").on("keyup", "#discount2", function() {
calculateItemPrice();
});