Хорошо, вы хотите чему-то научиться, поэтому я опишу возможный способ, а не дам вам законченное решение.
Прежде всего, вы должны пометить таблицы, которые содержат элементы, class="item"
.Теперь вы можете написать селектор в jQuery, который получает каждый элемент отдельно.Затем вы должны отметить все ячейки (<td>
), которые имеют специальную функцию.Всего, Цена, Диск и Доп.Ваша таблица должна выглядеть так:
<table class="item">
<tr>
<td>...</td>
<td class="total">...</td>
<td class="price">...</td>
<td class="disc">...</td>
<td class="ext">...</td>
</tr>
</table>
Теперь вы можете написать селектор для всех полей ввода внутри таблицы с классом "item".
$('.item input').change(function(){});
Внутри этой функции вы можете обрабатывать вычисления.Сначала я бы порекомендовал получить предмет:
$('.item input').change(function(){
var item = $(this).closest('table.item');
var totalInput = $(item).find('.total input');
var priceInput = $(item).price('.price input');
// ...
var allWriteableInputs = $(item).find('input[readonly!="readonly"]');
// do the calculation
var sum = 0;
$(allWriteableInputs).each(function(i, input){
sum += $(input).val();
});
$(totalInput).val(sum);
});
Если вы идете этим путем, вам не нужно:
-
onkeypress="return isNumberKey(event);"
и id="product1Total"
для каждого поля ввода
Я надеюсь, что этот наводящий на размышления импульс поможет вам немного.Тебе еще предстоит пройти долгий путь, мой молодой падаван; -)