Выбор следующего входа события.target - PullRequest
0 голосов
/ 16 января 2019

У меня есть (массив) два входа product и category.

Продукт один является автозаполнением. Я хотел бы заполнить категорию, когда продукт выбран.

проблема в том, что event.target не является jquery объектом, поэтому кажется, что я не могу применить jQquery .next("input")

Вот мой код:

var addedProduct = $(".produit:last > input");
addedProduct.autocomplete( {
        source: Object.keys(availableProducts),
        select: function(event, ui){
            var category = event.target.next("input"); // something like this ???
            category.value = availableProducts[ui.item.value]; //{"product1":"category1",...}
        }
    })

Расположение входов выглядит следующим образом:

enter image description here

1 Ответ

0 голосов
/ 16 января 2019

Вы можете создать новый объект jQuery из цели события с помощью $(event.target). Вы сможете позвонить .next на него потом

Другое решение без jQuery - использовать нативный DOM API. Вы можете выбрать следующий элемент с помощью nextElementSibling. Единственное требование состоит в том, что элемент, на который вы хотите нацелить , должен быть сразу следующим элементом.

РЕДАКТИРОВАТЬ : Из предоставленной структуры DOM вы можете использовать .parent().next() для выбора следующего элемента на родительском уровне. Затем на этом новом элементе используйте .find(), чтобы выбрать нужный ввод. Обратите внимание, что код тесно связан со структурой DOM. Вы можете использовать id для непосредственного выбора элемента.

$(event.target).parent().next().find("input");
...