注册页面对数据进行校验,Ajax的使用-数据唯一性

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="js/jquery-3.7.0.js"></script>
    <script>
        $(function () {
            var username_flag = false;
            var password_flag = false;
            //用户输入框失去焦点
            $("[name=username]").blur(function () {
                //获取输入框的值
                var usernameValue = $(this).val();
                //判空
                if (usernameValue == null || usernameValue == "") {
                    $("#span1").text("账号不能为空");
                } else {
                    //判长度
                    if (usernameValue.length < 5) {
                        $("#span1").text("账号不能少于5位");
                    } else {
                        //判断账号的唯一性
                        $.get("LoginServlet",{"username":usernameValue},function (date) {
                            console.log(date)
                            if (date) {
                                $("#span1").text("√");
                                $("#span1").css("color","green");
                                username_flag = true;
                            } else {
                                $("#span1").text("此账号已被注册过!请重新输入");
                            }
                        },"json");
                    }
                }
            });
            //密码输入框失去焦点
            $("[name=password]").blur(function () {
                var passwordValue = $(this).val();
                //判空
                if (passwordValue == null || passwordValue == "") {
                    $("#span2").text("密码不能为空");
                } else {
                    //判长度
                    if (passwordValue.length < 5) {
                        $("#span2").text("密码不能少于5位");
                    } else {
                        //判内容
                        var rule = /^\d*$/;
                        if (rule.test(passwordValue)) {
                            $("#span2").text("密码不能是纯数字");
                        } else {
                            $("#span2").text("√");
                            $("#span2").css("color","green");
                            password_flag = true;
                        }
                    }
                }
            });

            $("form").submit(function(){
                if(username_flag && password_flag){
                    alert("提交成功")
                    return true;
                }else{
                    alert("数据有误!")
                    return false;
                }
            });

        });
    </script>
</head>
<body>
<form>
    用户名:<input type="text" name="username"><span id="span1" style="color: red"></span><br>
    密码:<input type="password" name="password"><span id="span2" style="color: red"></span><br>
    <input type="submit" value="登录">
</form>
</body>
</html>
java 复制代码
package com.etime.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "LoginServlet", value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取名字
        String username = request.getParameter("username");
        boolean flag;
        //假设数据库只有admin用户
        if ("admin".equals(username)){
            //用户已经存在
            flag = false;
        } else {
            //用户不存在
            flag = true;
        }
        PrintWriter writer = response.getWriter();
        writer.print(flag);
        writer.close();
    }
}
相关推荐
counterxing3 小时前
我整理了一个免费开发资源目录,还做成了 CLI 和 MCP
前端·agent·ai编程
子兮曰9 小时前
Bun v1.3.14 深度解析:Image API、HTTP/3、全局虚拟存储与五十项变革
前端·后端·bun
kyriewen10 小时前
今天,百年巨头一次砍了9200人,而一个离职科学家的实话让全网睡不着觉
前端·openai·ai编程
问心无愧051311 小时前
ctf show web 入门42
android·前端·android studio
kyriewen11 小时前
老板逼我上AI,我偷偷在浏览器里跑LLaMA,省下20万API费
前端·react.js·llm
Beginner x_u11 小时前
前端八股整理(手写 02)|数组转树、数组扁平化、随机打乱一个数组
前端·数组·数组转树·数组扁平化
KaMeidebaby11 小时前
卡梅德生物技术快报|禽类成纤维细胞 FISH 实验:鸟类性别染色体基因定位技术实现与数据验证
前端·数据库·其他·百度·新浪微博
天若有情67311 小时前
前端高阶性能优化:跳出传统懒加载与预加载,基于用户行为做轻量预判加载
前端·性能优化
小小小小宇12 小时前
前端转后端:SQL 是什么
前端
张元清13 小时前
React Observer Hooks:7 种监听 DOM 而不写样板代码的方式
前端·javascript·面试