Вы используете один и тот же id
для всех своих input
ящиков. id
- уникальное свойство, вы должны использовать разные id
для каждого из ваших входов. Добавьте общий класс в раскрывающиеся списки и измените обработчик событий на класс выбранных элементов. Затем измените настройки ввода описания и цены, используя jquery функции .closest
и .next
и .find
, например:
Измените каждый из выбранных вами так:
<p><select class='nameItems' name="items[]">
Измените каждый из ваших входов следующим образом:
<p>Description:<input type="text" class="description" name="description[]" value=""></p>
<p>Price: <input type="text" class="price" name="price[]" value=""></p>
Затем в вашем скрипте измените на это:
$( ".nameItems").click(function() {
const itemSelected = $(this).val();
const $selectedElement = $(this); //Store a reference to the select element
$.each(JSON.parse(dataSource), function( index, value ) {
var itemType = value.item;
if(itemSelected == itemType){
// Extract related Craft values from JSON object
var description = value.description;
var price = value.price;
// Place craft value in respective INPUT box
$selectedElement.closest('p').next('p').find('input').val(description);
$selectedElement.closest('p').next('p').next('p').find('input').val(price);
}
});
});