ホームページ ウェブフロントエンド jsチュートリアル JSフォームの送信方法にはどのようなものがありますか?

JSフォームの送信方法にはどのようなものがありますか?

Feb 20, 2024 pm 02:27 PM
フォームの送信 jsフォーム送信 フォーム送信方法 js送信フォーム

JSフォームの送信方法にはどのようなものがありますか?

JS フォームを送信するには、いくつかの一般的な方法があります。フォーム要素の submit() メソッドを使用する方法、非同期送信に AJAX を使用する方法、非同期送信にフェッチ API を使用する方法があります。

  1. form 要素の submit() メソッドを使用します。
    form 要素の submit() メソッドを呼び出すことで、フォームを送信できます。このメソッドはフォームの送信イベントをトリガーし、ブラウザーがフォームのデフォルトの送信動作を実行できるようにします。

コード例:

<form id="myForm" action="submit.php" method="POST">
  <input type="text" name="username" />
  <input type="password" name="password" />
  <input type="submit" value="提交" />
</form>

<script>
  const form = document.querySelector('#myForm');
  form.addEventListener('submit', (e) => {
    e.preventDefault(); // 阻止表单的默认提交行为
    // 进行表单验证
    // ...
    // 提交表单
    form.submit();
  });
</script>
ログイン後にコピー
  1. 非同期送信に AJAX を使用する:
    XMLHttpRequest または jQuery の $.ajax() およびその他の関連テクノロジを使用すると、非同期送信を行うことができます。リクエスト フォーム データをサーバーに送信し、サーバーから応答を受け取ります。

コード例 - ネイティブ XMLHttpRequest の使用:

<form id="myForm" action="submit.php" method="POST">
  <input type="text" name="username" />
  <input type="password" name="password" />
  <input type="submit" value="提交" />
</form>

<script>
  const form = document.querySelector('#myForm');
  form.addEventListener('submit', (e) => {
    e.preventDefault(); // 阻止表单的默认提交行为
    // 进行表单验证
    // ...
    // 构造请求对象
    const xhr = new XMLHttpRequest();
    xhr.open('POST', 'submit.php', true);
    // 设置请求头
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    // 监听请求状态
    xhr.onreadystatechange = function() {
      if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
        console.log(xhr.responseText);
      }
    };
    // 发送请求
    xhr.send(new FormData(form));
  });
</script>
ログイン後にコピー
  1. 非同期送信のためのフェッチ API の使用:
    フェッチ API を使用すると、リクエストをリクエストの前に処理できます。非同期操作をより効率的に実行するために、リクエストとレスポンスを一部処理して Promise オブジェクトにパッケージ化します。

コード例:

<form id="myForm" action="submit.php" method="POST">
  <input type="text" name="username" />
  <input type="password" name="password" />
  <input type="submit" value="提交" />
</form>

<script>
  const form = document.querySelector('#myForm');
  form.addEventListener('submit', (e) => {
    e.preventDefault(); // 阻止表单的默认提交行为
    // 进行表单验证
    // ...
    // 构造请求参数对象
    const formData = new FormData(form);
    // 发起fetch请求
    fetch('submit.php', {
      method: 'POST',
      body: formData
    })
    .then(response => response.text())
    .then(data => console.log(data))
    .catch(error => console.log(error));
  });
</script>
ログイン後にコピー

上記は JS での一般的なフォーム送信メソッドです。実際のニーズに応じて、フォーム送信に適切なメソッドを選択できます。

以上がJSフォームの送信方法にはどのようなものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Lauiuiでフォームデータを取得する方法 Lauiuiでフォームデータを取得する方法 Apr 04, 2024 am 03:39 AM

Lauiuiでフォームデータを取得する方法

Lauiui でフロントエンドとバックエンドのインタラクションを実装する方法 Lauiui でフロントエンドとバックエンドのインタラクションを実装する方法 Apr 01, 2024 pm 11:33 PM

Lauiui でフロントエンドとバックエンドのインタラクションを実装する方法

Lauiuiログインページでジャンプを設定する方法 Lauiuiログインページでジャンプを設定する方法 Apr 04, 2024 am 03:12 AM

Lauiuiログインページでジャンプを設定する方法

Javaにおけるサーバーレットの役割は何ですか Javaにおけるサーバーレットの役割は何ですか Apr 12, 2024 pm 02:39 PM

Javaにおけるサーバーレットの役割は何ですか

PHP を使用してシングルページ アプリケーションを構築する方法 PHP を使用してシングルページ アプリケーションを構築する方法 May 04, 2024 pm 06:21 PM

PHP を使用してシングルページ アプリケーションを構築する方法

PHPパラメータ欠落問題の解決策 PHPパラメータ欠落問題の解決策 Mar 11, 2024 am 09:27 AM

PHPパラメータ欠落問題の解決策

Java Servlet のアプリケーション シナリオは何ですか? Java Servlet のアプリケーション シナリオは何ですか? Apr 17, 2024 am 08:21 AM

Java Servlet のアプリケーション シナリオは何ですか?

vueのeventと$eventの違い vueのeventと$eventの違い May 08, 2024 pm 04:42 PM

vueのeventと$eventの違い

See all articles