ホームページ > 記事 > ウェブフロントエンド > Ajax は検証コードを使用して部分更新ログイン関数を作成します
今回は認証コード付きAjax部分更新ログイン機能についてご紹介します。認証コード付きAjax部分更新ログインの注意点について、実際の事例を見てみましょう。
現在のログインインターフェイスのほとんどには、検証コード機能 + 検証コードの部分更新 + Ajax ログインが備わっています。 ajax を使用してログインすることの最も明白な利点は、高速であり、URL アドレスが変更されないことです。現在、ログイン関数は送信後にフォームを使用することはほとんどありません。そのほとんどは ajax を使用してローカルでバックグラウンドにアクセスし、戻り値を解析してインターフェースに結果を表示します。理論を検証するには、まだ実践する必要があります。コードに直接進みましょう。
実行インターフェイス:
1. 前回のブログで検証コードのバックグラウンドアクセス部分を紹介しましたが、ここではimgのsrcを使用して検証コードを部分的に更新する機能を実現する方法を紹介します。
html 部分:
<p><label class="lbright">验证码:</label> <span> <input type="text" name="validcode" style="width:70px; vertical-align:middle;" id="validcode"/> <img id="codePic" src="http://127.0.0.1:8888/TP/codePic" width="60" height="21" style="vertical-align:middle;cursor:pointer;"/> </span> <a class="blurry" id="newPic" onclick="getPic();">看不清楚,换一张</a> </p>
js 部分:
<script type="text/javascript"> function getPic(){ $("#codePic").attr("src","http://127.0.0.1:8888/TP/codePic?flag="+Math.random()); }; </script>
この部分の最も重要な部分は、$("#codePic").attr("src","http://127.0.0.1:8888/TP/codePic) です。 ?flag ="+Math.random()); コードのこの部分。 flag="+Math.random() を追加しないと部分リフレッシュ機能が実現できません。アクセスするたびに src のアドレスが同じだと更新されないためです。 CodePic は実際にはアクションです。このアクションの機能は、Java ブラシを使用して検証コードを描画し、それを img 内の src にパッケージ化することです。ログイン関数を送信する前に、ユーザー名またはパスワードが空であるかどうかを確認する必要があります。エラーが発生した場合は、ユーザーにプロンプトを表示するダイアログ ボックスが表示される必要があります。検証部分は js で実装されます。 bootstrap のモーダル部分:
<p class="modal" id="mymodal" tabindex="-1"> <p class="modal-dialog"> <p class="modal-content"> <p class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title">亲,您好</h4> </p> <p class="modal-body" id="dialogs"> <p></p> </p> <p class="modal-footer"> <button type="button" data-dismiss="modal" style="color: #FFFFFF;background-color:#FB8F02; text-align:center; padding:10px;border: 1px solid #dedede;-moz-border-radius: 15px;-webkit-border-radius: 15px; border-radius:15px;vertical-align:middle;">我知道了 </button> </p> </p><!-- /.modal-content --> </p><!-- /.modal-dialog --> </p><!-- /.modal -->.
js 検証部分:
<script type="text/javascript"> function dialog(){ $("#mymodal").modal("toggle"); }; function login(){ var userName=document.getElementById("username").value; var pwd=document.getElementById("password").value; var validcode=document.getElementById("validcode").value; var matchResult=true; if(userName==""){ document.getElementById("dialogs").innerHTML="<h3>用户账号不能为空!</h3>"; dialog(); matchResult=false; }else if(pwd==""){ document.getElementById("dialogs").innerHTML="<h3>用户密码不能为空!</h3>"; dialog(); matchResult=false; }else if(validcode==""){ document.getElementById("dialogs").innerHTML="<h3>验证码不能为空!</h3>"; dialog(); matchResult=false; }else if(userName.length<6||userName.length>20){ document.getElementById("dialogs").innerHTML="<h3>用户名长度应在6到20个字符之间!</h3>"; dialog(); matchResult=false; }else if(pwd.length<6||pwd.length>20){ document.getElementById("dialogs").innerHTML="<h3>密码或重复密码长度应在6到20个字符之间!</h3>"; dialog(); matchResult=false; } }; </script>
インポートする必要がある CSS ファイルと js ファイル:
<link href="css/global.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="css/bootstrap.min.css"> <script src='js/jquery-1.9.1.js'></script> <script src="js/jquery.min.js"></script> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script>
ここで注意する必要があるのは、インポートされた CSS ファイルと js ファイルが正しいかどうかです。 . ajax を使用してログイン機能を実装します
html 部分:
<p class="submitcon"> <input type="button" value="登 录" style="height:45px;width:130px;margin-top:15px;color: #FFFFFF;background-color:#FB8F02;font-size: 20px; padding:5px;border: 3px solid #dedede;-moz-border-radius: 15px;-webkit-border-radius: 15px; border-radius:15px;vertical-align:middle;text-align:center;" onclick="login();"/> </p>
js 部分:
<script type="text/javascript"> function login(){ var userName=document.getElementById("username").value; var pwd=document.getElementById("password").value; var validcode=document.getElementById("validcode").value; var matchResult=true; if(userName==""){ document.getElementById("dialogs").innerHTML="<h3>用户账号不能为空!</h3>"; dialog(); matchResult=false; }else if(pwd==""){ document.getElementById("dialogs").innerHTML="<h3>用户密码不能为空!</h3>"; dialog(); matchResult=false; }else if(validcode==""){ document.getElementById("dialogs").innerHTML="<h3>验证码不能为空!</h3>"; dialog(); matchResult=false; }else if(userName.length<6||userName.length>20){ document.getElementById("dialogs").innerHTML="<h3>用户名长度应在6到20个字符之间!</h3>"; dialog(); matchResult=false; }else if(pwd.length<6||pwd.length>20){ document.getElementById("dialogs").innerHTML="<h3>密码或重复密码长度应在6到20个字符之间!</h3>"; dialog(); matchResult=false; } if(matchResult==true){ $.post("http://127.0.0.1:8888/TP/usersAction?method=login", {usersName:userName,password:pwd, validcode:validcode},function(data,status){ var error=data.error; var result=data.result; getPic(); if(error=="error"){ errors="true"; document.getElementById("dialogs").innerHTML="<h3>验证码错误,请重新输入!</h3>"; dialog(); } if(result=="0"){ document.getElementById("dialogs").innerHTML="<h3>您输入的用户名不存在!</h3>"; document.getElementById("username").value=""; dialog(); }else if(result=="1"){ document.getElementById("dialogs").innerHTML="<h3>您输入的密码错误,请重新输入!</h3>"; document.getElementById("password").value=""; dialog(); }else if(result=="2"){ document.getElementById("dialogs").innerHTML="<h3>您的管理员权限不够!</h3>"; dialog(); }else if(result=="3"){ location.href="http://127.0.0.1:8888/TP/main.jsp"; } },"json"); } }; </script>
location.href="http://127.0.0.1:8888/TP/main.jsp" は、私の ajax に相当します。ネイティブ JS の ajax ではなく、JQuery によってカプセル化されています。JQuery で $.post() リクエストを検索できます:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>无标题文档 <link href="css/global.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="css/bootstrap.min.css"> <script src='js/jquery-1.9.1.js'></script> <script src="js/jquery.min.js"></script> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <p class="modal" id="mymodal" tabindex="-1"> <p class="modal-dialog"> <p class="modal-content"> <p class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title">亲,您好</h4> </p> <p class="modal-body" id="dialogs"> <p></p> </p> <p class="modal-footer"> <button type="button" data-dismiss="modal" style="color: #FFFFFF;background-color:#FB8F02; text-align:center; padding:10px;border: 1px solid #dedede;-moz-border-radius: 15px;-webkit-border-radius: 15px; border-radius:15px;vertical-align:middle;">我知道了 </button> </p> </p><!-- /.modal-content --> </p><!-- /.modal-dialog --> </p><!-- /.modal -->
大学二手交易平台管理系统
BBW综合管理系统
<p><label class="lbright">验证码:</label> <span> <input type="text" name="validcode" style="width:70px; vertical-align:middle;" id="validcode"/> <img id="codePic" src="http://127.0.0.1:8888/TP/codePic" width="60" height="21" style="vertical-align:middle;cursor:pointer;"/> </span> <a class="blurry" id="newPic" onclick="getPic();">看不清楚,换一张</a> </p> <p class="submitcon"> <input type="button" value="登 录" style="height:45px;width:130px;margin-top:15px;color: #FFFFFF;background-color:#FB8F02;font-size: 20px; padding:5px;border: 3px solid #dedede;-moz-border-radius: 15px;-webkit-border-radius: 15px; border-radius:15px;vertical-align:middle;text-align:center;" onclick="login();"/> </p>
Copyright 2015-2016 林志强 版权所有
このケースを読んだ後、メソッドを習得したと思います。この記事では、php 中国語 Web サイトの他の関連記事にも注目してください。
Ajax でフォームを送信してファイルのアップロードを実装する方法
ajax バックグラウンド成功以上がAjax は検証コードを使用して部分更新ログイン関数を作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。