$('body').on('input', 'keyup', function () {
var price = $(this).closest('tr').find('[data-price]').val();
var qua = $(this).closest('tr').find('[data-qua]').val();
$(this).closest('tr').find('[data-total]').val( price * qua );
});
Потому что js запускается один раз после запуска страницы и создания событий. Для использования с динамически добавленным событием, вы должны создать событие для родителя (я обычно использую $('body')
)
также идентификатор должен быть уникальным, так что лучше быть
var newInput = $('<tr id="row'+i+'"><div><td><input type="text" name="type[]" placeholder="Select Product"/></td><td><input type="text" name="des[]" placeholder="Product Description"/></td><td><input type="text" name="qua[]" data-qua='' placeholder="Quantity"/></td><td><input type="text" name="price[]" data-price='' placeholder="Price"/></td><td><input type="text" name="total[]" data-total='' placeholder="Total" readonly/></td><td><button type="button" name="remove" id="'+i+'" class="btn_remove">Remove</button></td></div></tr>');
<table id="dynamic">
<tr>
<td><input type="text" name="type" placeholder="Select Product"/></td>
<td><input type="text" name="des" placeholder="Product Description"/></td>
<td><input type="text" name="qua" data-qua='' placeholder="Quantity"/></td>
<td><input type="text" name="price" data-price='' placeholder="Price"/></td>
<td><input type="text" name="total" data-total='' placeholder="Total" readonly/></td>
</tr>
<button type="button" name="add" id="add_input">Add</button>