Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery(或纯js)模拟按enter键进行测试_Javascript_Jquery_Testing_Mocking - Fatal编程技术网

Javascript jquery(或纯js)模拟按enter键进行测试

Javascript jquery(或纯js)模拟按enter键进行测试,javascript,jquery,testing,mocking,Javascript,Jquery,Testing,Mocking,模拟用户按“回车”的最佳方式是什么$(element).keypress()似乎不允许我传入实际按下的键 这是用于单元测试的 对于那些想在纯javascript中实现这一点的人,请参阅: 使用标准键盘事件 正如乔所评论的,这是现在的标准 触发enter(键码13)的相同示例: 您可以使用“帮助”查找右键盘事件 过时的答案: 适用于IE9+、Chrome和Safari 对于Firefox 您可以这样做(这里是Firefox) 谢谢你,红方块。从文档中我看不出这个解决方案--。它们将其用法显

模拟用户按“回车”的最佳方式是什么$(element).keypress()似乎不允许我传入实际按下的键

这是用于单元测试的


对于那些想在纯javascript中实现这一点的人,请参阅:

使用标准键盘事件 正如乔所评论的,这是现在的标准

触发enter(键码13)的相同示例:

您可以使用“帮助”查找右键盘事件


过时的答案

  • 适用于IE9+、Chrome和Safari
  • 对于Firefox
您可以这样做(这里是Firefox)


谢谢你,红方块。从文档中我看不出这个解决方案--。它们将其用法显示为.trigger(eventType、extraParameters)。我应该根据这些文件来弄清楚吗?这是官方支持的功能吗?@morgancodes,我想不容易不,它没有解释,但暗示了较低级别。演示脚本很差。检查使用的密钥并验证它是否是预期的密钥,以确保完整。@Luke Stanley,感谢dig Luke-“jQuery规范化了.which属性,以便您可以可靠地使用它来检索字符代码”。之前的测试代码不同,测试和设置是结合在一起的。试试这个更好的测试,有没有键码-你会看到错误。什么是挖苦?看来这个答案需要更新。KeyboardEvent现在是标准的:(initKeyEvent不推荐使用)您能回答这个问题吗?我想抄袭你的答案,但我想你会想自己回答的。
var e = jQuery.Event("keypress");
e.which = 13; //choose the one you want
e.keyCode = 13;
$("#theInputToTest").trigger(e);
const ke = new KeyboardEvent('keydown', {
    bubbles: true, cancelable: true, keyCode: 13
});
document.body.dispatchEvent(ke);
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);