我遇到的问题是我正在开发票系统。哪个使用了这个,
$(document).ready(function() {
$('#add').click(function() {
JQuery('#lineItems').append('<input type="text" name="description[]"
class="ui-corner-all text invDesc" />
<input type="text" name="qty[]" class="ui-corner-all text invQty" />
<input type="text" name="amount[]" class="ui-corner-all text invAmount"
title="Amount" />
<input type="hidden" name="rowTotal[]" class="row-total-input" />');
});
});
创建新订单项。名为rowTotal []的隐藏输入用于保存每行的总数,以便可以将它们相加。我用来获取qty *金额的行总数的代码是,
$(function(){
$('.row-total-input').each(
function( intIndex ){
$('.invAmount').livequery('blur', function() {
var $this = $(this);
var amount = $this.val();
var qty = $this.parent().find('.invQty').val();
if ( (IsNumeric(amount)) && (amount != '') ) {
var rowTotal = qty * amount;
$this.css("background-color", "white").parent().find(".row-total-input").val(rowTotal);
} else {
$this.css("background-color", "#ffdcdc");
};
calcProdSubTotal();
calcOrderTotal();
});
}
);
});
但是它会将所有rowTotal []输入字段更新为最后一行总数,因此最终总和不正确。
我假设我需要为每个rowTotal []创建某种唯一ID,因此只更新正确的ID。我只是不知道该怎么做。
提前致谢。
答案 0 :(得分:0)
问题出在这里啊:
var qty = $this.parent().find('.invQty').val();
如果每一行都有一个不同的父级,那就没问题,但是所有的“行”都包含在同一个父级中 - #lineItems。应该有什么帮助才能将当前行创建代码更改为:
$(document).ready(function() {
$('#add').click(function() {
JQuery('#lineItems').append('<div><input type="text" name="description[]"
class="ui-corner-all text invDesc" />
<input type="text" name="qty[]" class="ui-corner-all text invQty" />
<input type="text" name="amount[]" class="ui-corner-all text invAmount"
title="Amount" />
<input type="hidden" name="rowTotal[]" class="row-total-input" /></div>');
//notice the extra div tag that wrapps around all the input fields
});
});