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

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

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

How to Stop a Form from Submitting on ENTER Keypress?

防止按 ENTER 按键提交表单

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

方法 1:Onkeypress 处理程序

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

1

2

3

4

5

6

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 代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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;

    }

  }

}

登录后复制

1

<form>

登录后复制

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

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

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