Ajax实现注册异步校验

Ajax实现注册异步校验

注册的servlet

/**
*注册的servlet
*/
package com.etc.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.etc.entity.Admin;
import com.etc.service.AdminService;

public class AdminServlet extends HttpServlet {
    private AdminService adminService = new AdminService();
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String loginid = request.getParameter("loginid");
        Admin admin = adminService.getAdminById(loginid);
        if(null!=admin){//表示用户名已注册
            response.getWriter().write("no");
        }else{//表示用户名未注册
            response.getWriter().write("yes");
        }
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>添加管理员界面</title>
    <style>
        #div1{
            height: 400px;
            width:500px;
        }
    </style>
    <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
    <script type="text/javascript">
    var xmlHttp;
        function createXMLHttpRequest(){
            if(window.XMLHttpRequest){
                xmlHttp = new XMLHttpRequest();
            }
        }

        function inputLogin(txt){
            var id = $("#adminid").val();
            var span = $("#s");

            //jquery post实现异步校验
            $.post(
                "AdminServlet",//url路径
                {loginid:id},//参数
                function(data){
                    if(data == "yes"){
                        span.css("color","green").html("用户名可用...");
                    }else{
                        span.css("color","red").html("用户名已存在...");
                    }

                },//回调函数
                "text"//类型
            );
            //jquery get实现异步校验
            /*$.get(
                "AdminServlet",//url路径
                {loginid:id},//参数
                function(data){
                    if(data == "yes"){
                        span.css("color","green").html("用户名可用...");
                    }else{
                        span.css("color","red").html("用户名已存在...");
                    }

                },//回调函数
                "text"//类型
            );
            */

            /*
            //jquery 实现异步校验
            $.ajax({
                type:"GET",
                url:"AdminServlet",
                data:"loginid="+id,
                dataType:"text",
                success:function(d){
                    if(d == "yes"){
                        span.css("color","green").html("用户名可用...");
                    }else{
                        span.css("color","red").html("用户名已存在...");
                    }
                }
            });
            */

            /*
            //自己写方法AJax实现异步校验
            createXMLHttpRequest();
            var admin = txt.value;
            xmlHttp.onreadystatechange = callback;
            var url = "AdminServlet?loginid="+admin;
            xmlHttp.open("GET",url,true);

            xmlHttp.send(null);
            */
        }
        //回调函数
        function callback(){
            var span = document.getElementById("s");
            if(xmlHttp.readyState == 4){
                if(xmlHttp.status == 200){
                    var data = xmlHttp.responseText;
                    if(data == "yes"){
                        span.style.color="green";
                        span.innerHTML="用户名可用";
                    }else{
                        span.style.color="red";
                        span.innerHTML="用户名已存在";
                    }
                }
            }
        }
    </script>
  </head>

  <body>
  <center>
  <div id="div1">
    <fieldset>
        <legend>注册管理员</legend>
        <form action="" method="post">
            <p>
                用户名:<input type="text" name="adminid" id="adminid" onblur="inputLogin(this)"/>
                <span id="s"></span>
            </p>
            <p>
                密&nbsp;&nbsp;码:<input type="password" name="adminid" />
            </p>
            <input type="submit" value="注册" />
        </form>
    </fieldset>
   </div>
   </center>
  </body>
</html>

这里是使用servlet+jsp实现的 其他框架使用,只是servlet改变。 原理不变。
这里保存下,方便下次使用….

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于AJAX实现的用户注册信息异步校验的示例代码: HTML代码: ``` <form id="register-form"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <span id="username-tips"></span><br> <label for="email">电子邮箱:</label> <input type="email" id="email" name="email"> <span id="email-tips"></span><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br> <label for="confirm-password">确认密码:</label> <input type="password" id="confirm-password" name="confirm-password"> <span id="password-tips"></span><br> <button type="submit">注册</button> </form> ``` JavaScript代码: ``` $(document).ready(function() { // 防止表单默认提交 $('#register-form').submit(function(event) { event.preventDefault(); }); // 用户名异步校验 $('#username').blur(function() { var username = $('#username').val(); $.ajax({ url: '/check-username', type: 'POST', data: {username: username}, success: function(data) { if (data.status === 'success') { $('#username-tips').text(''); } else { $('#username-tips').text(data.message); } } }); }); // 电子邮箱异步校验 $('#email').blur(function() { var email = $('#email').val(); $.ajax({ url: '/check-email', type: 'POST', data: {email: email}, success: function(data) { if (data.status === 'success') { $('#email-tips').text(''); } else { $('#email-tips').text(data.message); } } }); }); // 密码异步校验 $('#password').blur(function() { var password = $('#password').val(); var confirmPassword = $('#confirm-password').val(); if (password !== confirmPassword) { $('#password-tips').text('两次密码不一致'); return; } $('#password-tips').text(''); }); // 提交表单 $('button[type="submit"]').click(function() { var username = $('#username').val(); var email = $('#email').val(); var password = $('#password').val(); var confirmPassword = $('#confirm-password').val(); if (!username || !email || !password || password !== confirmPassword) { alert('请正确填写表单'); return; } $.ajax({ url: '/register', type: 'POST', data: $('#register-form').serialize(), success: function(data) { if (data.status === 'success') { alert('注册成功'); } else { alert(data.message); } } }); }); }); ``` 以上代码中,通过使用jQuery的$.ajax方法,实现异步校验用户名、电子邮箱、密码等信息,并在前端页面上实反馈校验结果。在提交表单,再次校验表单数据的合法性,如果表单数据无误,则使用AJAX提交表单数据给后端服务器进行注册处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值