首頁 >web前端 >js教程 >如何停止按 ENTER 按鍵提交表單?

如何停止按 ENTER 按鍵提交表單?

DDD
DDD原創
2024-11-09 04:17:02623瀏覽

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