我有一个模仿发票输入表单的HTML表单。
这是我加载发票项目的方式(用户使用jQuery通过自动完成列表选择它们):
$(document).ready(function() {
$("#Products").focus().autocomplete('<%=Url.Action("GetProducts", "Product") %>', {
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].product_name1, result: data[i].product_name1 };
}
return rows;
},
formatItem: function(row, i, n) {
return row.product_PrettyId + ' - ' + row.product_name1 + ' (' + row.product_price + ' €) ';
},
width: 900,
minChars: 0,
max: 0,
mustMatch: true
});
$("#Products").result(function(event, data, formatted) {
if (data) {
$(this).parent().next().find("input").val(data["product_id"]);
$("#InvoiceItems > tbody").append(
"<tr>" +
"<td>num</td>" +
"<td>" + data["product_PrettyId"] + "</td>" +
"<td>" + data["product_name1"] + "</td>" +
"<td>" + data["product_price"] + "</td>" +
"<td></td>" +
"<td>1</td>" +
"<td>" + data["product_price"] + "</td>" +
"</tr>");
}
});
在添加每个发票项目后,我需要枚举我正在构建的表格 - 计算项目,将价格与数量相乘并将所有项目相加。
我该怎么做?
答案 0 :(得分:2)
您可能希望为特定tds添加一些类,例如数量,价格和项目总数,每次添加新项目时,您都可以更新计数器并将其存储在隐藏字段中并从中读取那个价值
编辑:在函数中包装.each循环
function functionName() {
var itemCounter = 0;
$('#InvoiceItems tr').each(function() {
itemCounter += 1;
//this loops through each row in the table
var quantity = parseFloat($('td.quantity', this).text());
quantity = isNaN(quantity) ? 1 : quantity;//if a number isn't parsed, replace it with 1
var price = parseFloat($('td.price', this).text());
price = isNaN(price) ? 0 : price;
var total = quantity * price;
//do something with the total
});
}
每当添加新项目时,您都可以调用此函数,因此总计将始终是最新的