Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выбрать option, select (https://javascript.ru/forum/dom-window/71058-vybrat-option-select.html)

mightybat 23.10.2017 13:56

Выбрать option, select
 
Добрый день, код js формирует список option , как возможно после загрузки страницы пробежаться по созданным селектам id X и имитировать ручной выбор селекта со значением xyz?

ksa 23.10.2017 14:52

Цитата:

Сообщение от mightybat
как возможно после загрузки страницы пробежаться по созданным селектам id X и имитировать ручной выбор селекта со значением xyz?

Прям так и сделать...
<select id='x'>
	<option value=''></option>
	<option value='xyz'>xyz</option>
</select>
<script type='text/javascript'>
document.getElementById('x').value='xyz';
</script>

mightybat 23.10.2017 15:22

Цитата:

Сообщение от ksa (Сообщение 467987)
Прям так и сделать...

К сожалению не работает, возможно по тому, что селект в коде выглядит так, и option создаются в коде.
<select size="1" id="x"></select><br />

ruslan_mart 23.10.2017 15:30

mightybat, там где создаются option, после того кода и вставить select.value = 'xyz';

mightybat 23.10.2017 15:35

Цитата:

Сообщение от ruslan_mart (Сообщение 467997)
mightybat, там где создаются option, после того кода и вставить select.value = 'xyz';

Тут больше проблема с тем, чтобы имитировать именно выбор этого селекта, чтобы запустить в работу другую функцию, которая строит следующий уровень списков. если присваивать элементу значение спустя время, то селект подставляется, но следующий список не формируется.

ruslan_mart 23.10.2017 15:47

var select = document.getElementById('x');

var mutation = new MutationObserver(function() {
    select.value = 'xyz';
});

mutation.observe(select, {
    childList: true
});

mightybat 23.10.2017 16:03

Спасибо за помощь, попробовал - не получилось, к сожалению знаний не хватает ни описать проблему, ни понять почему не работает.
Решил вопрос очень криво :выбрал значение спустя 5мс, и спустя 10 заново синхронизировал списки 2 и 3 уровня(уже без первого). Наверное мне нужно руки оторвать за такое решение, но помогло)


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