触发输入按键不起作用?

时间:2017-03-15 17:21:30

标签: javascript jquery html

我在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);
    }
  });

});

1 个答案:

答案 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
    }
  });

});