Имитация события нажатия клавиши (обычным js) - PullRequest
0 голосов
/ 27 февраля 2020

Я ищу пример , как имитировать событие нажатия клавиши в js.

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

Когда я пытаюсь использовать рекомендуемый KeyboardEvent , он не работает - ввод не обновляется.

<input id="myInput" />

const element = document.getElementById('myInput')
const keypressEvent = new KeyboardEvent('keypress', {
  code: 'KeyA'
})
element.dispatchEvent(keypressEvent)

Что неправильно или отсутствует в приведенном выше код? Элемент должен сначала сфокусироваться или что-то в этом роде?

1 Ответ

1 голос
/ 27 февраля 2020

function emitKey() {
  const element = document.getElementById('myInput');
  element.dispatchEvent(new KeyboardEvent('keypress',{'key':'a'}));
}
function handleKeypress(target, event) {
  if(event.keyCode == 0 && event.key != "") {
    target.value += event.key;
  }
}

emitKey();
<input id="myInput" onkeypress="handleKeypress(this, event);" />
...