Вход

Просмотр полной версии : dispatchEvent и text (textarea)


MadChildNSK
11.11.2017, 04:52
Доброго времени.

Сломал всю голову, подскажите. Для удобства приведу пример на яндексе (ya.ru).
В консоли напираю:

var element = document.getElementsByClassName('websearch-button__text'); // Получаем объект необходимого элемента
var o = document.createEvent('MouseEvents'); // Создаём объект события, выбран модуль событий мыши
o.initMouseEvent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null ); // Инициализируем объект события
element[0].dispatchEvent(o); // Запускаем событие на элементе

Выполняю, всё срабатывает - имитируется клик по кнопке "поиск".
Мне нужно имитировать нажатие Enter в элементе textbox. Пишу:

var element = document.getElementsByClassName('input__control'); // Получаем объект необходимого элемента
var o = document.createEvent('KeyboardEvent'); // Создаём объект события, выбран модуль событий мыши
o.initKeyboardEvent("keypress",true,true,null,false,false,false,false,13,0);// Инициализируем объект события
element[0].dispatchEvent(o); // Запускаем событие на элементе

возвращает: True и ни чего не происходит.
Почему так, подскажите?
P.S. В итоге мне на сайте нужно имитировать нажатие Enter в textarea.

ruslan_mart
11.11.2017, 12:20
К сожалению, имитировать нажатие конкретной клавиши не получится.

Nexus
11.11.2017, 14:24
MadChildNSK, если нужно отправить форму, то вызовите событие "submit" родительской формы элемента.