防止按 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中文网其他相关文章!