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