JavaScriptJasmine:TriggerKeydown事件
我试图在文本框上测试keydown事件,以确定提供的字符是否有效,但这是一项不可能完成的任务 我有一个选择器,如下所示:JavaScriptJasmine:TriggerKeydown事件,jasmine,Jasmine,我试图在文本框上测试keydown事件,以确定提供的字符是否有效,但这是一项不可能完成的任务 我有一个选择器,如下所示: $('<input type="text" id="rwSearchText" />').appendBody('body'); 但keydown事件从未触发 有什么我遗漏的吗?我在谷歌上搜索过类似的场景,但我所做的似乎是正确的。任何帮助都将不胜感激。在您的测试中-是否附加HTML?根据给出的代码示例,在beforeach()函数中,我是。也许解决方案将是将测试
$('<input type="text" id="rwSearchText" />').appendBody('body');
但keydown事件从未触发
有什么我遗漏的吗?我在谷歌上搜索过类似的场景,但我所做的似乎是正确的。任何帮助都将不胜感激。在您的测试中-是否附加HTML?根据给出的代码示例,在beforeach()函数中,我是。也许解决方案将是将测试拆分为两个测试-如果按下一些键,则启动附加侦听器,并测试附加侦听器-而不使用HTML。它不起作用,因为您已经输入了一些值,然后调用keydown-您的方法与keydown无关-值已经设置好了。
var addKeyDownEvent = function() {
$('#rwSearchText').keydown(function(event) {
var keyCode = event.which;
if ((keyCode > 64 && keyCode < 91) || keyCode === 189 || keyCode === 222 || keyCode === jQuery.ui.keyCode.BACKSPACE
|| keyCode === jQuery.ui.keyCode.DELETE || keyCode === jQuery.ui.keyCode.SPACE
|| keyCode === jQuery.ui.keyCode.LEFT || keyCode === jQuery.ui.keyCode.RIGHT
|| keyCode === jQuery.ui.keyCode.SHIFT || keyCode === jQuery.ui.keyCode.END
|| keyCode === jQuery.ui.keyCode.HOME) {
return true;
}
else {
return false;
}
});
};
beforeEach(function ()
{
rwSearchText = $("<input type=\"text\" id=\"#rwSearchText\" />").appendTo("body");
addKeyDownEvent();
});
describe("rwSearchText", function() {
it("single dash should be allowed", function() {
rwSearchText.val('&');
rwSearchText.trigger('keydown');
var results = rwSearchText.val();
});
});