Как смоделировать полный пользовательский ввод с событиями - PullRequest
0 голосов
/ 17 мая 2019

Мне нужно смоделировать пользовательский ввод в поле ввода:

<input type="text" id="name">

Следующие события должны запускаться вручную:

mousedown> focus> mouseup> click> keydown> keypress> change> размытие

Код показать здесь

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

var element = document.getElementById('name');

$(element).on('mousedown focus mouseup click keydown keypress change blur', function(e){
    console.log(e);
});

Обновленный файл (не обнаружен, нет журналов консоли ..):

$("#name").trigger("mousedown");
$("#name").trigger("focus");
$("#name").trigger("mouseup");
$("#name").trigger("click");
$("#name").trigger("keydown");
$("#name").trigger("keypress");
$("#name").trigger("change");
$("#name").trigger("blur");

var element = document.getElementById('name');

$(element).on('mousedown focus mouseup click keydown keypress change blur', function(e){
    console.log(e);
});

Ответы [ 3 ]

0 голосов
/ 17 мая 2019

Вы можете использовать функцию триггера jquery для имитации и запуска любых событий.

0 голосов
/ 17 мая 2019

Попробуйте -

Добавить плагин Jquery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

<input type="text" id="name">

//var element = document.getElementById('name');

$("input").trigger("mousedown");
$("input").trigger("focus");
$("input").trigger("mouseup");
$("input").trigger("click");
$("input").trigger("keydown");
$("input").trigger("keypress");
$("input").trigger("change");
$("input").trigger("blur");
0 голосов
/ 17 мая 2019

Вы бы использовали jQuery's trigger для этого. Итак, если вы хотите смоделировать события в порядке, который вы описали:

$("#name").trigger("mousedown");
$("#name").trigger("focus");
$("#name").trigger("mouseup");
$("#name").trigger("click");
$("#name").trigger("keydown");
$("#name").trigger("keypress");
$("#name").trigger("change");
$("#name").trigger("blur");

Если вы хотите действительно подобрать пользователя, вы можете использовать некоторые setTimeout для имитации человеческой задержки. Удачи!

...