Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Имитация события onchange (https://javascript.ru/forum/dom-window/49061-imitaciya-sobytiya-onchange.html)

Globus 28.07.2014 02:38

Имитация события onchange
 
Есть селект с onchange :

<select id="id8" name="id[8]" onchange="setAttrValue('8', this.value);">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>


Есть необходимость имитировать событие onchange при загрузке страницы, но я совсем не уверен в синтаксисе:

window.onload = function (s) { eval(setAttrValue('8', this.value).onchange());}

Rise 28.07.2014 03:58

Globus, :blink:
window.onload = function () {
    document.getElementById('id8').onchange();
};

Aetae 28.07.2014 05:59

Цитата:

Сообщение от Globus (Сообщение 322983)
window.onload = function (s) { eval(setAttrValue('8', this.value).onchange());}

Бессвязный набор букв.=\

Globus 28.07.2014 10:52

Спасибо! А для нескольких селектов код будет выглядить так?

window.onload = function () {
document.getElementsByTagName('select').onchange();
};

Aetae 28.07.2014 10:57

Globus, нет.
document.getElementsByTagName('select') - возвращает NodeList, массивоподобный объект. Не знаешь как работать с массивами(или что такое массивы вообще)? Тебе в учебник, и не возвращайся пока не прочитаешь.

рони 28.07.2014 11:04

Цитата:

Сообщение от Globus
А для нескольких селектов код

Цитата:

Сообщение от рони
Globus,
можно сделайте циклом обход селектов ... сам сам ... пора уже

:cray: :cray: :cray:

Globus 28.07.2014 11:19

Aetae, спасибо, я как раз в процессе, в практике :yes:

Просто никак не получается один момент - при загрузке страницы значения всех селектов заполняются данными, которые были сохранены до этого в куках. Как раз рони помогал с этим


window.onload = function () {  
            var elems = document.getElementsByTagName('select');
            for (var i = 0; i < elems.length; i++) {
                var elem = elems[i],
                    c = getCookie(elem.name);

                elem.selectedIndex = c !== undefined ? c : 0; 
            }	

	 	 
        };


И никак не могу вписать сюда аккуратно имитацию onchange(), чтобы после того, как в селекте "будет выставлено" значение из кукис, имитировалось событие onchange()

Aetae 28.07.2014 11:23

elem.onchange()
До этого можно догадаться вообще ничего не зная о программировании на js.:nono:

Globus 28.07.2014 11:24

Спасибо! позор мне... ушёл читать учебники..


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