Инициировать keypress/keydown/keyup событие в JS/jQuery?

Что лучший способ состоит в том, чтобы моделировать пользователя, вводящего текст в поле ввода текста в JS и/или jQuery?

Я не хочу на самом деле помещать текст в поле ввода, я просто хочу инициировать все обработчики событий, которые обычно инициировать пользователем, вводящим информацию в поле ввода. Это означает фокус, keydown, нажатие клавиши, keyup, и размытость. Я думаю.

Таким образом, как можно было бы выполнить это?

165
задан Brian Tompsett - 汤莱恩 21 August 2019 в 21:19
поделиться

1 ответ

Вы можете вызвать любое из этих событий прямым вызовом, например, так:

$(function() {
    $('item').keydown();
    $('item').keypress();
    $('item').keyup();
    $('item').blur();
});

Это делает то, что вы пытаетесь сделать?

Вероятно, вам также следует вызвать .focus() и, возможно, .change()

Если вы хотите вызвать ключевые события с определенными клавишами, вы можете сделать это следующим образом:

$(function() {
    var e = $.Event('keypress');
    e.which = 65; // Character 'A'
    $('item').trigger(e);
});

Здесь есть интересное обсуждение событий нажатия клавиш: jQuery Event Keypress: Which key was pressed?, в частности, относительно кросс-браузерной совместимости со свойством .which.

228
ответ дан 23 November 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: