按Enter键始终提交表单

时间:2012-01-05 21:55:00

标签: javascript jquery html forms

我的页面上有一个简单的文本框和按钮类型输入。

 <input id="sText" type="text" />
 <input id="sButton" type="button" value="button" />

我使用jQuery捕获按钮单击。

  $("[id$=sButton]").click(function () {

      ...do Stuff  

  });

只要我手动点击按钮,上面的代码就可以正常工作。当我想使用“enter”键点击按钮时,我开始遇到问题。无论我做什么,我都无法阻止enter键执行它的默认提交功能。

我做的第一件事就是将输入类型从“提交”更改为“按钮”。

我尝试将表单的onsubmit设置为onsubmit="return false;"

我尝试使用jQuery来捕获回车键事件:

 $("#sText").keyup(function (event) {
        if (event.keyCode == 13) {
            alert("Enter!");
            // $("#sButton").click();
        }
    });

每次按下回车键,就像我提交表格一样,整个页面都会刷新。上面的jQuery代码确实捕获了“输入”击键,但表单仍然提交并刷新页面。

我不确定最新情况。

2 个答案:

答案 0 :(得分:9)

您需要取消操作。

event.preventDefault();

但我相信你只能用keydown杀死表单提交,而不是keyup。

答案 1 :(得分:1)

Epascarello是对的,你需要用他给你的代码取消提交。但是您也应该将按钮更改回提交类型,以便ENTER键和单击按钮执行相同的操作。这样你只需在一个区域内处理取消提交。

<input id="sButton" type="submit" value="Submit" />

JQuery的:

$("#YourFormId").submit(function(event){

      event.preventDefault();
      ...do Stuff  

  });

这样一个函数处理ENTER键和按钮单击。

编辑:将event.preventDefault()作为第一个语句。