Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   выбор select из JS (https://javascript.ru/forum/misc/85802-vybor-select-iz-js.html)

od0201 20.03.2024 12:33

выбор select из JS
 
Доброе время суток

Есть select который нужно изменить

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

Как мне имитировать выбор

Всем спасибо

document.querySelectorAll(".esc .input-wrapper select")[4].value=2
или
document.querySelectorAll(".esc .input-wrapper select")[4].getElementsByTagName('option')[2].selected=true;

рони 20.03.2024 13:18

Цитата:

Сообщение от od0201
но при сохранении изменения не применяются.

???

voraa 20.03.2024 13:38

Цитата:

Сообщение от od0201
но при сохранении изменения не применяются.

Что и куда сохраняется?

od0201 20.03.2024 22:00

не суть куда, в моем случаи через порт в микроконтролер

нашел пример, на сайте
https://esc-configurator.com/
есть кнопка "Open Melody Editor" если нажать то будет "окно" в котором есть select, если его менять ручками, есть эфект.
програмно, например
document.querySelector(".input-wrapper select").value='preset-2Pac - Hit Em Up'

Селект меняется, но эфекта нет.

направьте в нужное русло (как я понимаю, это React)

roland 20.03.2024 22:29

od0201, вероятно, "эффект", о котором Вы говорите, происходит в обработчике события "change", которое не генерируется при программном изменении значения элемента "select". Попробуйте после изменения значения генерировать событие "change" программно:
select.value = option.value
const event = new Event('change', { bubbles: true })
select.dispatchEvent(event)

od0201 24.03.2024 13:09

roland,
спасибо, то что нужно.

od0201 28.03.2024 12:00

добрый день
есть еще одна проблема с вводом в input
я даже класс меняю, но данные не сохраняются
визуально все ок
const qwewqe=()=>{
  let timePause=200
  const phrase=document.querySelector('input#phrase')
  phrase.value='234'
  phrase.classList.remove('mui--is-untouched')
  phrase.classList.add('mui--is-touched')
  const event= new Event('change', { bubbles: true })
  phrase.dispatchEvent(event)
}


{/* <input type="text" id="phrase" name="phrase" placeholder="Binding Phrase" class="mui--is-untouched mui--is-dirty mui--is-not-empty"></input> */}
{/* <input type="text" id="phrase" name="phrase" placeholder="Binding Phrase" class="mui--is-dirty mui--is-not-empty mui--is-touched"></input> */}

voraa 28.03.2024 12:17

Все равно хотелось бы знать, как именно должны сохраняться данные. И в какой момент.

roland 28.03.2024 15:13

od0201, для элемента "input" для обработки каждого введённого символа вероятно используется событие "input". Попробуйте заменить событие "change" на "input" в строке:
const event= new Event('change', { bubbles: true })

od0201 28.03.2024 18:12

roland,
input тоже не работает


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