Имеется ли в каждом поле значения, например, атрибут ID, который может быть получен из идентификатора поля количества?Если так, то это довольно быстро и безболезненно.Дано:
<table id="basket">
<tr class="basket-row">
<td class="basket-quantity">
<input type="text" id="product1234_quantity">
</td>
<td class="basket-subtotal">
<input type="hidden" id="product1234_unitprice" value="20">
<input type="text" readonly="readonly" id="product1234_subtotal">
</td>
</tr>
<tr class="basket-row">
<td class="basket-quantity">
<input type="text" id="product5678_quantity">
</td>
<td class="basket-subtotal">
<input type="hidden" id="product5678_unitprice" value="30">
<input type="text" readonly="readonly" id="product5678_subtotal">
</td>
</tr>
</table>
Здесь цена за единицу для каждого продукта находится в скрытом атрибуте, но я не знаю, где ваша корзина хранит его.Давайте предположим, что вы можете получить его откуда-то, и давайте предположим, что jQuery.
$('#basket').on('change','.basket-quantity input',function(e) {
$('#'+this.id.replace('_quantity','_subtotal')).val(Number($('#'this.id.replace('_quantity','_unitprice')))*Number(this.value));
});
Если вы не можете получить идентификаторы из других идентификаторов, вам придется выполнить более сложные запросы DOM, но сутьво время выполнения обработчика вы должны выяснить, какой ввод вы обновляете.
Вы не указали, какую (если есть) платформу, которую вы используете.В простом JS это потребовало бы много дополнительного кода, чтобы сделать его кросс-браузерным совместимым, чтобы нормализовать присоединение и обработку событий.