我正在进行文本冒险,目前底部有一个文本输入表单,它将接受玩家的命令,例如“Go North”或“Get item”。以前,我必须在它旁边有一个按钮,它会激活一个函数来解析表单所持有的任何字符串值并解释它,但我真的很想能够点击“Enter”键来启动该功能。 / p>
问题是,无论何时我点击表单中的回车键,页面都会刷新并尝试提交表单,即使我只是想让它激活一个功能。
我尝试过像
这样的东西$("userInput").keydown(function(event) {
if (event.keyCode == 13) {
inputHandler()
event.preventDefault();
}
});
});
其中“userInput”是播放器键入命令的窗体的ID,但似乎不起作用,当我按Enter键时页面会保持刷新。
我不太明白我做错了什么,请记住我是Javascript / jQuery的新手,所以可能只是缺乏经验。
答案 0 :(得分:2)
您忘记加入#
(应该是$('#userInput')
)。我认为这就是你要找的东西
$('#userInput').keypress(function(event) {
if (event.which == 13) {
alert("run function here");
event.preventDefault();
}
});
答案 1 :(得分:0)
简单地改变:
$("userInput").keydown(function(event) {
if (event.keyCode == 13) {
inputHandler();
event.preventDefault();
}
});
});
要:
$("userInput").keydown(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
inputHandler();
}
});
});
首先运行event.preventDefault
然后运行该函数。如果您按照ID或“。”选择元素,还要记得添加“#”。如果你选择一个元素是CLASS。