Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с клонированием элементов (https://javascript.ru/forum/misc/86482-problemy-s-klonirovaniem-ehlementov.html)

maiskiykot 06.06.2025 15:03

Проблемы с клонированием элементов
 
Есть страница, на которой выводятся табличные данные - скажем: Название1, Название2, Название3. Придумал простенький код, который к этим названиям (поле input) подтягивает поле select с выбором значений для замены в input. Все нормально, когда input один. Как только появляется второй (дальше еще даже не заглядывал) - у второго начинаются проблемы с заполнением поля input и с закрытием select по focusout. При этом первый элемент работает как ни в чем не бывало!
Прикрепляю скрипт, который я сваял:
function update(e, targetId) {
  let target = document.getElementById('bdf['+targetId+']');
  let target2 = document.getElementById('code['+targetId+']');
  let target3 = document.getElementById('sif['+targetId+']')
  let ob = e.options[e.selectedIndex];
  target.value = `${ob.value} - ${ob.text}`;
  target2.value = `${ob.value}`;
  target3.style='display:none'; 
  } 

let elements = document.querySelectorAll('select');
for (const dropdown of elements) {  

dropdown.addEventListener('mouseout', (event) => {
  if (!dropdown.contains(event.relatedTarget)) {
    dropdown.style='display:none';
  }
}, true);
}


Не знаю: как удалить, но нашел ошибку - были ошибки в id - яваскрипт ведь регистрозависимый. Поправил - работает! Так, что, если кому-то нужна реализация из нескольких строчек - вот она


Часовой пояс GMT +3, время: 22:09.