javascript - 按 Enter 总是提交表单

标签 javascript jquery html forms

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

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

我使用 jQuery 捕捉按钮点击。

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

      ...do Stuff  

  });

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

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

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

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

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

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

我不确定发生了什么。

最佳答案

您需要取消操作。

event.preventDefault();

但我相信您只能使用 keydown 而不是 keyup 来终止表单提交。

关于javascript - 按 Enter 总是提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750399/

相关文章:

jquery - 只接受整数的数字输入类型?

html - 如何在 css 上用阴影做这样的渐变 block ?

javascript - 当我尝试打印到文本区域字段时,数据被 [object NodeList] 替换

javascript - 使用自定义滚动条进行视差滚动

javascript - 如何在 onclick 函数上打开外部 URL 到新表列中?

javascript - 如何使用jquery旋转鼠标滚轮上的元素?

javascript - 在 jQuery 效果之前确定元素包装器的最终大小(例如 SlideDown)

javascript - 疯狂的 javascript 问题 : undefined actually ! == 未定义!

html - 如何使用 CSS 更改 iFrame 内容的样式?

javascript - 你如何 JSON.stringify 一个 ES6 map ?