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

问题描述:

模拟用户按下“enter”的最佳方式是什么? $(元素).keypress()似乎不允许我传入按下的实际键。jquery(或纯js)模拟输入按键进行测试

这是用于单元测试。

Demo Here

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

谢谢redsquare。从文档 - http://api.jquery.com/trigger/这个解决方案对我来说并不明显。它们显示它们用作.trigger(eventType,extraParameters)。我应该能够根据文档来弄清楚吗?这是官方支持的功能吗? – morgancodes 2010-07-18 19:23:13

+0

@morgancodes,我猜不容易,没有解释,但暗示在下面。 – redsquare 2010-07-19 01:47:56

+1

演示脚本很差。检查使用的密钥并验证它是预期的密钥,以便完成。 – 2011-07-30 12:01:53

对于那些谁希望这样做的纯JavaScript,看:

你可以做一些像(这里为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); 
+4

看起来这个答案需要更新。 KeyboardEvent现在是标准的:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent(不推荐使用initKeyEvent) – JoeRocc 2016-12-28 01:37:25