jQuery用ajax验证登录帐号密码

后端代码;只返回 json单字符串数据

   @RequestMapping("/a2")
    @ResponseBody
    public String fixLogin(String username,String password) {
        Map<String, Object> map = new HashMap<>();
        String msg="";
        if (username != null) {
            if ("admin".equals(username)) {
                msg="ok";
            }else{
                msg = "用户名不正确";
            }
        }
        if (password != null) {
            if ("123456".equals(password)) {
                msg = "ok";
            } else {
                msg = "密码输入错误";
            }
        }
        return msg;
    }

前端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证用户输入情况</title>
    <script type="text/javascript" src="/asserts/js/jquery-3.4.1.min.js"></script>
    <script type="text/javascript">
        function io1() {
            $.post("/ajax/a2",{"username":$("#name").val()},function (data) {
                if (data.toString() === 'ok') {
                    $("#nameInfo").css("color","green")
                }else{
                    $("#nameInfo").css("color","red")
                }
                $("#nameInfo").html(data);
            })
        }
        function io2() {
            $.post("/ajax/a2",{"password":$("#pwd").val()},function (data) {
                if (data.toString() === "ok") {
                    $("#pwdInfo").css("color", "green")
                }else{
                    $("#pwdInfo").css("color", "red")
                }
                $("#pwdInfo").html(data);
            })
        }
    </script>
</head>
<body>
<div>
    <p>
       用户名 <input type="text" id="name" onblur="io1()"/>
        <span id="nameInfo"></span>
    </p>
</div>
<div>
    <p>
        用户密码 <input type="text" id="pwd" onblur="io2()"/>
        <spam id="pwdInfo"></spam>
    </p>
</div>
</body>
</html>

结果显示:

在这里插入图片描述
在这里插入图片描述
Ajax总结:使用JQuery需要导入jQyery包,
三部曲:
1,编写对应的处理controller类,返回消息或者字符串对象或者json根式数据;
2.编写ajax请求:
1.url:controller的mapping
2.data:key/value键值对
3.success:回调函数,相当于原生的response.onreadystatechange=function(){}
3.给ajax绑定事件,点击时间onclick,失去焦点事件onblur,键盘弹起事件keyup,键盘按下keydown.

更多案例:

1.基础案例

  @RequestMapping("/a")
    public void sayAjax(String name, HttpServletResponse response) throws IOException {
        if ("admin".equals(name)) {
            response.getWriter().print("true");
        } else {
            response.getWriter().print("false");
        }
    }
<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>ajax</title>
<!--    导入jQuery的包-->
    <script type="text/javascript" src="/asserts/js/jquery-3.4.1.min.js"></script>
    <script>
        function lose() {
            //这里是需要加#号的才能锁定id
            $.ajax({
                url: "/ajax/a",
                data: {"name": $("#myname").val()},
                success: function (data, status) {
                    console.log($("#myname").val());
                    alert(data);
                    alert(status)
                }
            });
        }
    </script>
</head>
<body>
<div>
    <p>
       用户名: <input type="text" id="myname" onblur="lose()">
    </p>
</div>
</body>
</html>

显示结果

在这里插入图片描述

2.返回一个列表

 @PostMapping("/a1")
    @ResponseBody
    public List<BookUser> findAll() {
        List<BookUser> list = bookUserMapper.selectAlluser();
        return list;
    }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用ajax请求显示用户列表</title>
    <script type="text/javascript" src="asserts/js/jquery-3.4.1.min.js"></script>
</head>
<body>
<h3>用户信息显示</h3>
<div>
    <p>
        <input type="button" value="获取数据" id="btn">
    </p>
</div>
<div>
    <table style="width: 80%">
        <thead>
            <th>id</th>
            <th>姓名</th>
            <th>性别</th>
            <th>生日</th>
            <th>邮箱</th>
            <th>会员等级</th>
            <th>创建日期</th>
            <th>修改日期</th>
        </thead>
        <tbody id="tb">

        </tbody>
    </table>
</div>
<script>
    function timeStamp2String(time){
        var datetime = new Date();
        datetime.setTime(time);
        var year = datetime.getFullYear();
        var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
        var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
        var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
        var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
        var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
        return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
    }
    function timeStamp1String(time){
        var datetime = new Date();
        datetime.setTime(time);
        var year = datetime.getFullYear();
        var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
        var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
        return year + "-" + month + "-" + date;
    }
  $(function () {
      $("#btn").click(
          function () {
              $.post("/ajax/a1",function (data,status) {
                  console.log(data);
                  var html = "";
                  for (var i = 0; i < data.length; i++) {
                      html += "<tr>"+
                          "<td>"+data[i].id+"</td>"+
                          "<td>"+data[i].username+"</td>"+
                          "<td>"+data[i].sex+"</td>"+
                          "<td>"+timeStamp1String(Date.parse(data[i].birthday))+"</td>"+
                          "<td>"+data[i].email+"</td>"+
                          "<td>"+data[i].userLevel+"</td>"+
                          "<td>"+timeStamp2String(Date.parse(data[i].createTime))+"</td>"+
                          "<td>"+timeStamp2String(Date.parse(data[i].updateTime))+"</td>";
                  }
                  $("#tb").html(html);
              })
          })
  })
</script>
</body>
</html>

结果:点击获取数据后显示,不刷新页面

在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值