我有一些代码可以计算连续输入的总数,然后在最后添加到总计的总数,这是以下工作代码:
$(":text[name='qty[]'],:text[name='rate[]']").keyup(function()
{
var totalamount = 0.00;
$("ul.rowData").each(function()
{
var quantity = +$(this).find(":text[name='qty[]']").val() || 0;
var rate = +$(this).find(":text[name='rate[]']").val() || 0;
var subtotal = quantity * rate;
$(this).find(":text[name='price[]']").val(subtotal.toFixed(2));
totalamount += subtotal;
});
$("#totalprice").val(totalamount.toFixed(2));
});
现在我有一个添加行按钮,它添加了一行字段:
$('.mainForm').find('.addItem').click(function()
{
$('.invoiceItems').append('<ul class="rowData">' +
'<li class="txtLg"><span class="sep">Item:</span><input type="text" name="item[]" maxlength="255" value=""></li>' +
'<li class="txtLg"><span class="sep">Description:</span><input type="text" name="description[]" maxlength="255" value=""></li>' +
'<li class="txtSm"><span class="sep">Rate:</span><input type="text" name="rate[]" maxlength="10" value="0.00"></li>' +
'<li class="txtSm"><span class="sep">Qty:</span><input type="text" name="qty[]" maxlength="5" value="1"></li>' +
'<li class="txtSm"><span class="sep">Price:</span><input type="text" name="price[]" maxlength="10" value="0.00"><input type="hidden" name="itemid[]" value="0"></li>' +
'</ul>').fadeIn(500);
return false;
});
我的问题是,一旦我点击添加行,当您向其添加数字时,字段中的总计不会自动计算。有什么想法吗?
答案 0 :(得分:0)
他们没有重新计算,因为没有代码可以做到这一点:)
您基本上计算总数,然后将其添加到页面中。您需要一些额外的代码,以便在修改原件时重新计算这些总计。你可能会重用一些现有的BTW代码。
查看.keyup()
和.change()
jQuery事件。每次释放一个键时都会触发前者,而后者只在输入失去焦点时触发。您可能希望使用其中之一来更新总计字段;
$('.sep').on('change', function(e) {
// stuff
});
答案 1 :(得分:0)
您的绑定$().keyup(function(){}}
无法动态添加到页面元素
$(":text[name='qty[]'],:text[name='rate[]']").live('keyup',function(){
...
}