Давайте представим, что у вас есть подобный HTML (может быть динамически нарисованный HTML).
<tr>
<td><input class="Qty" type="text" value="2"/></td>
<td><input class="Rate" type="text" value="200"/></td>
<td><input class="Value" type="text"/></td>
<td><button type="button" class="remove3">X</button></td>
</tr>
Кроме того, предположим, что вы изменили подход к обновлению итогового значения, чтобы оно было таким (которое готово внутри документа). Это пример кода, ваш реальный код может отличаться. Все, что вам нужно сделать, это сохранить on("keyup change")
(или как вам нравится) внутри document.ready()
.
$('.Qty').on("keyup change",function(){
var $row = $(this).closest("tr");
var price = 0;
var total = 0;
$('.tb3 tr').each(function() {
var qty = $(this).find('.Qty').val();
var rate = $(this).find('.Rate').val();
var price = qty * rate;
$(this).find('.Value').val(price);
total += parseFloat(price);
});
$('#TieTotal').val(total.toFixed(2));
});
Теперь, когда вы каждый раз нажимаете кнопку с классом .remove3
, вы правы в отношении удаления строки. В том же блоке вы можете легко обновить сумму, вызвав событие change()
элемента, который имеет класс .Qty
. (Вот так обновляется итог в первую очередь) См. Ниже,
$('.remove3').click(function () {
var trIndex = $(this).closest("tr").index();
if (trIndex > 0) {
$(this).closest("tr").remove();
$('.Qty').trigger('change');
} else {
alert("Sorry!! Can't remove first row!");
}
});
Скрипки,
https://jsfiddle.net/anjanasilva/dykm6wau/
Надеюсь, это поможет.
Ура!