ホームページ > ウェブフロントエンド > jsチュートリアル > Enter キーを押したときにフォームの送信を停止するにはどうすればよいですか?

Enter キーを押したときにフォームの送信を停止するにはどうすればよいですか?

DDD
リリース: 2024-11-09 04:17:02
オリジナル
676 人が閲覧しました

How to Stop a Form from Submitting on ENTER Keypress?

ENTER キーを押したときのフォーム送信の防止

Web アプリケーションでは、フォームの送信に ENTER キーがよく使用されます。ただし、ENTER キーを押してもフォームが送信されないようにしたい場合があります。これを実現する 2 つの方法を以下に示します。

方法 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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート