我在Stackoverflow上搜索了类似于我想要的问题。但是,当我试图让enter键工作时,我所看到的所有帖子都没有帮助我实现我想要实现的目标。我正在为FreeCodeCamp开发一个项目,代码在Codepen中。我不知道出了什么问题。我只知道当我按下按钮(这是搜索图标)时它会起作用。
以下是Codepen中的代码:
HTML
<form>
<input id="searchkeyword" type="text" placeholder="Search Wikipedia" />
<i id="submitbtn" class="fa fa-search"></i>
</form>
的Javascript
$(document).ready(function() {
$("#submitbtn").on("click", getWord);
$("#searchkeyword").keypress(function(e){
if(e.which == 13){
$("#submitbtn").on("click", getWord);
}
});
});
答案 0 :(得分:2)
默认情况下,<form>
内的输入按键将提交表单。如果您不希望这种情况发生,可以通过添加e.preventDefault();
更重要的是,您没有点击按键上的按钮 - 您只是重新绑定点击事件。它必须是$("#submitbtn").click()
,而不是on
部分。
$(document).ready(function() {
$("#submitbtn").on("click", getWord); // .on attaches an event to our button
$("#searchkeyword").keypress(function(e){
if(e.which == 13){
e.preventDefault();
$("#submitbtn").click(); // .click triggers the .on("click", ... ) event
}
});
});