利用ajax技術 實現用戶注冊。


一、ajax?

  異步加載技術,在不刷新網頁的前提下,實現部分網頁內容的更新!

  AJAX 最大的優點是在不重新加載整個頁面的情況下,可以與服務器交換數據並更新部分網頁內容。

 

 思考?

   注冊界面剛好可以應用此場景。在填寫相關信息的時候,無需多次請求頁面,實施驗證。

 

二、之前通過form表單提交  ,現在完全使用ajax。就要將form表單的  提交方式清除掉,form標簽和 submit  修改。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"+"views/";
%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>注冊 - 貴美·商城</title>
        <base href="<%=basePath%>">
         <link rel="icon" href="img/icon.png" type="image/x-icon">
        <link rel="stylesheet" type="text/css" href="css/register.css"/>
    </head>
    <body>
        <div class="wrap">
            <div class="guimeilogo"></div>
            <div class="register">
                <div class="top">
                    <h1>新用戶注冊</h1>
                    <a href="/shop/views/login.jsp">已有賬號</a>
                </div>

                <div class="mid">
                    <div style="color: red">${error}</div>

                    <%--給表單添加id --%>
                    <form  id="regForm">

                        <%--在這里添加提示信息 1.成功注冊   2.失敗注冊--%>
                        <div id="showMsg"></div>
                        <input type="text" name="username" id="username" placeholder="用戶名" required="required"/>
                        <input type="password" name="password" id="password" placeholder="密碼" required="required" />
                        <input type="password" name="reppw" id="reppw" placeholder="重復密碼" required="required" />
                        <input type="text" name="telephone" id="telephone" placeholder="手機號" required="required"/>
                            <div class="sec">
                                <input type="text" name="code" id="code" placeholder="驗證碼" required="required" />
                                <a  class="send" onclick="send()"> 發送驗證碼 </a>
                            </div>
                            <div id="nick"></div>
                        <input type="text" name="nickname" id="nickname" placeholder="親,您的昵稱" required="required" />
                        <input type="text" name="email" id="email" placeholder="親,您的郵箱" required="required"/>

                            <%--
                                使用ajax技術 將注冊按鈕由 submit  修改為button  給他一個id  submit  添加鼠標點擊事件
                            --%>
                        <input type="button" id="submit" value="注冊"/>
                    </form>
                </div>
            </div>
        </div>
            <%--導入JS包--%>
        <script src="js/jquery-2.1.0.js"></script>
    <script >
        submit.onclick=function(){
            $.post("/shop/register",{
                "username":$("#username").val(),
                "password":$("password").val(),
                "telephone":$("telephone").val(),
                "code":$("code").val(),
                "nickname":$("nickname").val(),
                "email":$("email").val()
            },function (data) {
                if (data.code == 555){
                    $("#showMsg").html("用戶名 已經被注冊過").css("color","red");
                }else {
                    if(confirm("恭喜您注冊成功 是否跳轉登錄界面?")){
                        window.location.href = "/shop/views/login.jsp";
                    }
                }
            })
        }
        /*
            用戶: 輸入用戶名完畢后    鼠標離開后   立刻提交用戶名是否可用   給用戶提示

            1.給username 輸入框  添加失去焦點的事件  onblur
                    username.onblur=function () {
                        alert(username.value)
                    }
            2.獲取用戶輸入的數據 value

            3.通過ajax 將用戶輸入的用戶名發送給服務器   注意  涉及到函數  需要導入js的包  jQuery-2.1.0.js


                $.post("url" ,"參數",function(data){});
                $.post("/shop/CheckUsername",{username:username.value},function (data)
                                {username:username.value}
            4.接受服務器返回響應

            5.將回傳的值  展示到頁面中

            后台?
                1.接收請求的參數
                2.通過 dao 檢驗用戶名是否可用
                3.將校驗結果  響應給瀏覽器
         */
        //1.給username 輸入框 添加時期焦點事件  通過id的方式
        username.onblur=function () {
            //2.通過ajax 將用戶的用戶名發送給服務器
            $.post("/shop/checkUsername",{username:username.value},function (data) {
                if (data.code == "1044"){
                    $("#showMsg").html("用戶名 已經被注冊過").css("color","red");
                } else{
                    $("#showMsg").html("此用戶名 可以注冊").css("color","green");
                }
            })
        }
        // 為用戶名  添加校驗  鼠標離開事件 onblur
        nickname.onblur=function () {
            $.post("/shop/checkNickname",{nickname:nickname.value},function (data) {
                if (data.code == "10444"){
                    $("#nick").html("昵稱已被注冊").css("color","red");
                }else{
                    $("#nick").html("該昵稱  可以注冊").css("color","green");
                }
            })
        }



        if ("${success}"=="注冊成功"){
            if(confirm("注冊成功,是否登錄?")){
                window.location.href="/shop/views/login.jsp";
            }
        }
    </script>
    </body>
</html>
<script>
    function send(){
        $.post("/shop/spendCode",{"telephone":telephone},function (data) {

        });
    }
</script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM