ホームページ  >  記事  >  バックエンド開発  >  Formフォーム送信を実現するAjaxの方法と注意点を詳しく解説

Formフォーム送信を実現するAjaxの方法と注意点を詳しく解説

小云云
小云云オリジナル
2017-12-26 10:20:031322ブラウズ

フォームフォームを使用する場合、送信をクリックして送信イベントがトリガーされると、通常、ページ間のジャンプなどの動作の制御はバックエンドで行われますが、ある時点で、ページをジャンプさせたくない場合、またはフロントエンドに制御を置き、js を使用してページジャンプやデータ変更を操作したい場合があります。この記事では、Ajax メソッドを使用した Form フォーム送信の実装方法と注意点を中心に紹介しますので、困っている方は参考にしていただければ幸いです。

一般的に、この種の非同期操作といえば、ajaxメソッドを思い浮かべるはずです。そのため、機能を実装した後、フォーム送信とその後の非同期操作をajaxメソッドで実装するためにこの記事をまとめました。

一般的なフォーム送信メソッド

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>login test</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="login test">  
</head>
<body>
<p id="form-p">
  <form id="form1" action="/users/login" method="post">
    <p>用户名:<input name="userName" type="text" id="txtUserName" tabindex="1" size="15" value=""/></p>
    <p>密 码:<input name="password" type="password" id="TextBox2" tabindex="2" size="16" value=""/></p>
    <p><input type="submit" value="登录">&nbsp<input type="reset" value="重置"></p>
  </form>
</p>
</body>
</html>

ログイン ボタンをクリックすると、フォーム送信イベントがトリガーされ、データがページ ジャンプとデータを制御するバックエンドに送信されます。

ajax はフォーム送信メソッドを実装します

変更後のコードは次のようになります:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>login test</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="ajax方式">
  <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
  <script type="text/javascript">
    function login() {
      $.ajax({
      //几个参数需要注意一下
        type: "POST",//方法类型
        dataType: "json",//服务端接收的数据类型
        url: "/users/login" ,//url
        data: $('#form1').serialize(),
        success: function (result) {
          console.log(result);//打印服务端返回的数据(调试用)
          if (result.resultCode == 200) {
            alert("SUCCESS");
          }
          ;
        },
        error : function() {
          alert("异常!");
        }
      });
    }
  </script>
</head>
<body>
<p id="form-p">
  <form id="form1" onsubmit="return false" action="##" method="post">
    <p>用户名:<input name="userName" type="text" id="txtUserName" tabindex="1" size="15" value=""/></p>
    <p>密 码:<input name="password" type="password" id="TextBox2" tabindex="2" size="16" value=""/></p>
    <p><input type="button" value="登录" onclick="login()"> <input type="reset" value="重置"></p>
  </form>
</p>
</body>
</html>

Notes

  • 一般的な方法では、クリックされたログイン ボタンのタイプは "submit" タイプです。一般的な方法では、フォームのアクションは空ではありません

  • ajax メソッドで注意する必要があるのは、$.ajax メソッドのパラメーターである dataType と data です。

  • レベルは理解して変更できるので、今回もBaiduを使用しました。 $.ajax メソッドのコードで設定されている dataType パラメーターの値が「json」ではなく「html」になっているため、最初にデバッグしたときにエラーが報告され続けました。最終的には「json」に変更しました。成功するので、ここで具体的に説明します。私のように間違った方向に行かないように注意してください。上記のコードと同様に、データをシリアル化して送信するだけです。フォーム。

  • 関連する推奨事項:

HTMLでフォームフォームを送信するときにページがジャンプしないようにする方法の詳細な説明

JavaScriptでよく使用されるフォームフォームのコード共有(コレクション)

フォームフォームの送信についてHTML 内の と ボタン 使用状況の詳細を送信します

以上がFormフォーム送信を実現するAjaxの方法と注意点を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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