首页 > web前端 > js教程 > 如何停止按 ENTER 按键提交表单?

如何停止按 ENTER 按键提交表单?

DDD
发布: 2024-11-09 04:17:02
原创
684 人浏览过

How to Stop a Form from Submitting on ENTER Keypress?

防止按 ENTER 按键提交表单

在 Web 应用程序中,ENTER 键通常用于提交表单。然而,有时需要阻止表单在按 ENTER 按键时提交。以下是实现此目的的两种方法:

方法 1:Onkeypress 处理程序

此方法使用表单上的 onkeypress 事件处理程序。通过创建一个函数来检查按下的键是否为 ENTER(键代码 13)并仅在不是 ENTER 时才允许表单提交,我们可以防止立即提交表单。这种方法的代码是:

function checkEnter(e) {
  e = e || event;
  var txtArea = /textarea/i.test((e.target || e.srcElement).tagName);
  return txtArea || (e.keyCode || e.which || e.charCode || 0) !== 13;
}
document.querySelector('form').onkeypress = checkEnter;
登录后复制

方法 2:使用现代 JavaScript 进行事件委托

使用 ES20xx 和事件委托的更现代方法涉及设置按键侦听器在整个文档上。此方法检查包含目标输入的表单是否具有指示按 ENTER 按键应提交表单的特殊属性。相关的 JavaScript 和 HTML 代码:

document.addEventListener(`keypress`, handle);

function handle(evt) {
  const form = evt.target.closest(`#testForm`);
  if (form) {
    if (evt.target.dataset.enterForSubmit) {
      if (evt.key === `Enter`) {
        evt.preventDefault();
        return logClear(`won't submit "${evt.target.value}"`);
      }
      return true;
    }
  }
}
登录后复制
<form>
登录后复制

这两种方法都可以有效防止表单在 ENTER 按键上提交,同时允许文本区域输入(自然使用 ENTER 进行换行)正常运行。

以上是如何停止按 ENTER 按键提交表单?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板