フォームフォームを使用する場合、送信をクリックして送信イベントがトリガーされると、通常、ページ間のジャンプなどの動作の制御はバックエンドで行われますが、ある時点で、ページをジャンプさせたくない場合、またはフロントエンドに制御を置き、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="登录"> <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 サイトの他の関連記事を参照してください。