所以我有一个表,我可以添加一个新行。如果我手动输入数量和价格,则总计是使用此JavaScript代码计算的。计算表行
function addRow() {
addTableRow($('.table tbody'));
}
function removeRow() {
var par = $(this).parent().parent();
var tableSize = $('.table tbody tr').length;
if(tableSize == '1'){
alert('You must have one row');
return false;
}
par.remove();
};
function calculateRow() {
var par = $(this).parent().parent();
var price = $(par).find('.price').val();
var qty = $(par).find('.qty').val();
var total = price*qty;
$(par).find('.total').val(total.toFixed('2'));
}
$('.table tbody').on("click", ".removeRow", removeRow);
$('.table tbody').on("blur", ".qty", calculateRow);
function addTableRow(table) {
$(table).append(
"<tr>" +
"<td><input name='item_number[]' type='text' class='id form-control'></td>" +
"<td><input name='item_name[]' type='text' class='name search form-control'></td>" +
"<td><input name='item_price[]' type='text' class='price form-control price'></td>" +
"<td><input name='item_qty[]' type='text' class='form-control qty'></td>" +
"<td><input name='item_total[]' type='text' class='form-control total'></td>" +
"<td class='text-center' style='vertical-align:middle;'><a href='#' class='text-success removeRow'><i class='fa fa-trash-o'></i></a></td>" +
"</tr>");
auto();
}
现在我已经加入jQuery用户界面的AutoSuggest我的桌前,并使其所以我能够全部通过选择一个产品填补了项目编号,项目名称,项目数量和项目价格。使用JavaScript如下:
function auto() {
var ac_config = {
source: "/admin/items/fetch_items",
select: function(event, ui){
var item = ui.item;
if(item) {
$(".id").val(item.id);
$(".price").val(item.price);
$(".qty").val('1');
var par = $(".qty").parent().parent();
var price = $(par).find('.price').val();
var qty = $(par).find('.qty').val();
var total = price*qty;
$(par).find('.total').val(total.toFixed('2'));
}
},
minLength: 1,
};
$(".search").autocomplete(ac_config);
}
现在你可以看到,我需要计算行总计并填写。当代码位于上面时,默认由html创建的第一行被正确计算。但是,一旦我添加一个新行并尝试自动填充并计算总数,第一行将随着我刚添加的新行一起更改。
我该如何获得javascript在我刚刚使用jQuery UI自动填充的行上运行?
像'$(“。id”)'这样的选择器会在页面中找到所有相同的类。您需要定义一种方法来定位特定的行。它可以通过在行上切换一个类,或者始终填充最后一行来完成。你在寻找什么行为? – charlietfl 2014-10-29 22:27:32
由于我们可能会返回一行来更改数量或项目,所以切换的声音更容易且更合理。 – user3968645 2014-10-29 22:42:29