【发布时间】:2011-03-17 15:34:17
【问题描述】:
模拟用户按下“回车”的最佳方式是什么? $(element).keypress() 似乎不允许我传入实际按下的键。
这是用于单元测试的。
【问题讨论】:
标签: javascript jquery testing mocking
模拟用户按下“回车”的最佳方式是什么? $(element).keypress() 似乎不允许我传入实际按下的键。
这是用于单元测试的。
【问题讨论】:
标签: javascript jquery testing mocking
var e = jQuery.Event("keypress");
e.which = 13; //choose the one you want
e.keyCode = 13;
$("#theInputToTest").trigger(e);
【讨论】:
对于那些想要在纯 javascript 中执行此操作的人,请查看:
正如乔所说,KeyboardEvent 现在是标准。
触发回车的相同示例(keyCode 13):
const ke = new KeyboardEvent('keydown', {
bubbles: true, cancelable: true, keyCode: 13
});
document.body.dispatchEvent(ke);
您可以使用this page 帮助您找到正确的键盘事件。
过时的答案:
你可以做类似的事情(这里是 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);
【讨论】: