JSFiddle - React, Tailwind, and code Playground
by Pranav C
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<th>Product</th>
<th>Size 1</th>
<th>Size 2</th>
<th>Size 3</th>
<th>TOTAL</th>
</tr>
<tr>
<td>A</td>
<td>
<input type="text" class="productA">
</td>
<td>
<input type="text" class="productA">
</td>
<td>
<input type="text" class="productA">
</td>
<td>
<input type="text" readonly>
</td>
</tr>
<tr>
<td>B</td>
<td>
<input type="text" class="productB">
</td>
<td>
<input type="text" class="productB">
</td>
<td>
<input type="text" class="productB">
</td>
<td>
<input type="text" readonly>
</td>
</tr>
<tr>
<td>C</td>
<td>
<input type="text" class="productC">
</td>
<td>
<input type="text" class="productC">
</td>
<td>
<input type="text" class="productC">
</td>
<td>
<input type="text" readonly>
</td>
</tr>
<tr>
<td colspan=5>
<input style="width:100%" type="text" id="total" />
</td>
</tr>
</table>
<!-- end snippet -->
JavaScript
$('table input').on('input', function() {
var $tr = $(this).closest('tr'); // get tr which contains the input
var tot = 0; // variable to sore sum
$('input:not(:last)', $tr).each(function() { // iterate over inputs except last
tot += Number($(this).val()) || 0; // parse and add value, if NaN then add 0
});
$('td:last input', $tr).val(tot); // update input in last column
var total = 0;
$('tr td:last-child input:not(#total)').each(function() {
total += Number($(this).val()) || 0;
})
$('#total').val(total)
}).trigger('input'); // trigger input to set initial value in column