Jquery (或纯 js)模拟按下输入键进行测试

模拟用户按“回车”的最佳方式是什么?$(元素)。Keypress ()似乎不允许我传递被按下的实际键。

这是用于单元测试的。

161834 次浏览

演示在这里

var e = jQuery.Event("keypress");
e.which = 13; //choose the one you want
e.keyCode = 13;
$("#theInputToTest").trigger(e);

对于那些希望用纯 javascript 完成这项工作的人,请看:

使用标准键盘事件

正如 Joe 所说,键盘事件现在是标准。

触发输入的相同示例(keyCode 13) :

const ke = new KeyboardEvent('keydown', {
bubbles: true, cancelable: true, keyCode: 13
});
document.body.dispatchEvent(ke);

您可以使用 这一页帮助您查找正确的键盘事件。


过时的回答 :

您可以做一些类似的事情(在这里是针对 Firefox 的)

var ev = document.createEvent('KeyboardEvent');
// Send key '13' (= enter)
ev.initKeyEvent(
'keydown', true, true, window, false, false, false, false, 13, 0);
document.body.dispatchEvent(ev);