首頁 > web前端 > js教程 > 如何防止 Web 應用程式中按 ENTER 按鍵時提交不需要的表單?

如何防止 Web 應用程式中按 ENTER 按鍵時提交不需要的表單?

Linda Hamilton
發布: 2024-11-07 15:08:02
原創
273 人瀏覽過

How to Prevent Unwanted Form Submissions on ENTER Keypress in Web Applications?

防止按 ENTER 鍵提交 Web 表單

在基於 Web 的應用程式中,由 ENTER 鍵觸發的無意的表單提交可能會很麻煩。本指南提供了防止此類不良行為的解決方案。

解決方案1:自訂按鍵處理程序

可以為表單實作自訂按鍵處理程序,以攔截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 進行事件委託

較現代的元素使用事件委託的方法可用於處理ENTER 按下。此方法涉及捕獲文件層級的事件並檢查最接近的表單祖先。只有具有 data-enter-for-submit 屬性的指定元素才會觸發 ENTER 上的表單提交。

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;
    }
  }
}
登入後複製

附加說明

  • 文字區域應以不同方式處理,因為在其中按 ENTER文字區域通常表示換行符。
  • 提供的程式碼片段是可自訂的,可以適應特定的應用程式需求。

以上是如何防止 Web 應用程式中按 ENTER 按鍵時提交不需要的表單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板