выбор select из JS
Доброе время суток
Есть select который нужно изменить Выполняю код, визуально изменяется, но при сохранении изменения не применяются. Как мне имитировать выбор Всем спасибо document.querySelectorAll(".esc .input-wrapper select")[4].value=2или document.querySelectorAll(".esc .input-wrapper select")[4].getElementsByTagName('option')[2].selected=true; |
Цитата:
|
Цитата:
|
не суть куда, в моем случаи через порт в микроконтролер
нашел пример, на сайте https://esc-configurator.com/ есть кнопка "Open Melody Editor" если нажать то будет "окно" в котором есть select, если его менять ручками, есть эфект. програмно, например document.querySelector(".input-wrapper select").value='preset-2Pac - Hit Em Up' Селект меняется, но эфекта нет. направьте в нужное русло (как я понимаю, это React) |
od0201, вероятно, "эффект", о котором Вы говорите, происходит в обработчике события "change", которое не генерируется при программном изменении значения элемента "select". Попробуйте после изменения значения генерировать событие "change" программно:
select.value = option.value const event = new Event('change', { bubbles: true }) select.dispatchEvent(event) |
roland,
спасибо, то что нужно. |
добрый день
есть еще одна проблема с вводом в 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> */} |
Все равно хотелось бы знать, как именно должны сохраняться данные. И в какой момент.
|
od0201, для элемента "input" для обработки каждого введённого символа вероятно используется событие "input". Попробуйте заменить событие "change" на "input" в строке:
const event= new Event('change', { bubbles: true }) |
roland,
input тоже не работает |
Часовой пояс GMT +3, время: 21:49. |