Как указал Джеймс в разделе комментариев, в вашем документе не должно быть дубликатов.Вам следует либо сгенерировать уникальные идентификаторы для каждого элемента, либо вообще удалить идентификаторы.
Если вы генерируете уникальные идентификаторы, вы можете передать сгенерированный идентификатор обработчику событий и использовать его для выбора правильного элемента.
<div>
<input type="text" id="barcode_123" name="barcode[]" onfocusout="get_barcode_data(this, 'description_123');"/>
</div>
<div>
<textarea id="description_123" name="description[]" disabled="disabled"></textarea>
</div>
<div align="center">
<a href="javascript:void(0);" class="add_input_button" title="Add row"></a>
</div>
123
должно быть динамически генерируемым числом.
А в вашем обработчике:
function get_barcode_data(element, target_id)
{
var name = element.value;
console.log(name);
$.ajax({
method: 'POST',
url: 'include/get_barcode_data.php',
data: {
barcode: name
},
success: function(response){
if (response == 'FALSE') {
$(element).focus();
$(element).val('');
$('#' + target_id).val('');
var message = 'Invalid barcode.';
alert( message );
} else {
var res = jQuery.parseJSON(response);
$('#' + target_id).val(res.description);
}
}
});
}
Хотелось бы отметить, что это не очень хорошопрактика.Код, подобный этому, становится сложным в обслуживании и легко ломается.
Вы бы действительно выиграли, если бы изучали хорошо продуманную среду, например Vue.js , Angular или Реагировать .