Ваша проблема в основном в том, что ваш javascript ищет элементы по идентификатору, так что он получает первый элемент в DOM с этим идентификатором. Действительно, работает и работает над первыми элементами с этими идентификаторами.
Не рекомендуется повторять идентификаторы для элементов документа. Тем не менее, вы должны искать элементы-братья onblur вместо элементов с фиксированным идентификатором.
Возможно, будет лучше код, использующий querySelector
с некоторым селектором css по имени класса, например, добавление класса к этим элементам, так что вы можете использовать его для стилизации всех элементов этого документа или, еслисохраняйте это так, используйте селектор атрибутов
function cal(_input)
{
const thisIsTD = _input.parentElement;
const thisIsTR = thisIsTD.parentElement;
var first = thisIsTR.querySelector('[name=quantity]').value;
var second = thisIsTR.querySelector('[name=retail_price]').value;
thisIsTR.querySelector('[name=amount]').value = parseFloat(parseInt(first)*parseInt(second)).toFixed(3);
}
function validate(event){ return true; }
<table>
<tr>
<td>
<input type="text" class="form-control" name="quantity" id="quantity"
onblur="cal(this)" onkeypress='validate(event)' placeholder="Quantity"/>
</td>
<td>
<input type="text" class="form-control" name="retail_price"
onkeypress='validate(event)' id="retail_price"
onblur="cal(this)" placeholder="Retail Price" />
</td>
<td>
<input type="text" readonly="true" class="form-control" name="amount"
id="amount" placeholder="Total Amount" onkeypress='validate(event)' />
</td>
</tr>
<tr>
<td>
<input type="text" class="form-control" name="quantity" id="quantity"
onblur="cal(this)" onkeypress='validate(event)' placeholder="Quantity"/>
</td>
<td>
<input type="text" class="form-control" name="retail_price"
onkeypress='validate(event)' id="retail_price"
onblur="cal(this)" placeholder="Retail Price" />
</td>
<td>
<input type="text" readonly="true" class="form-control" name="amount"
id="amount" placeholder="Total Amount" onkeypress='validate(event)' />
</td>
</tr>
</table>
«Если значение id не является пустой строкой, оно должно быть уникальным в документе». https://developer.mozilla.org/en-US/docs/Web/API/Element/id
Селектор запросов: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector
Селекторы атрибутов: https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors