zoukankan      html  css  js  c++  java
  • 基于bootstrap表单登录(带验证码)

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!-- 跳转到登录页面之前的URL -->
    <%
        String redirectUrl = (String) request.getSession().getAttribute("redirectUrl");
        String bikeNo = (String) request.getSession().getAttribute("bikeNo");
        request.setAttribute("url", redirectUrl);
        request.setAttribute("bikeNo", bikeNo);
    %>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1.0"/>
        <title>登录</title>
        <!-- 引入 Bootstrap -->
        <link href="${pageContext.request.contextPath}/css/bootstrap.min.css" rel="stylesheet">
        <!-- 引入自定义css -->
        <link href="${pageContext.request.contextPath}/css/style.css" rel="stylesheet">
        <!-- jQuery -->
        <script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
        <!-- 包括所有已编译的插件 -->
        <script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
    </head>
    <body class="login">
    <div class="container a ">
        <div class="row center-vertical">
            <%--屏蔽框--%>
            <div class="hidebox" align="center">
                <img src="${pageContext.request.contextPath}/images/Loading.gif"
                     style=" 69.6px;height: 44.8px;top:50%;left:50%;margin-top:322px;border-radius:6px;"/>
            </div>
            <div class="col-sm-4 col-sm-offset-4 ">
                <br><br><br>
     
                <form class="bs-example bs-example-form" role="form">
                    <div class="input-control" align="center" style="margin-bottom: 10px">
                        <img src="${pageContext.request.contextPath}/images/logo.jpg" style=" 60px;height: 60px"/>
     
                        <h1>租借单车</h1>
                    </div>
                    <div class="input-group input-group-lg">
                        <span class="input-group-addon">
                            <span class="glyphicon glyphicon-phone"></span>
                        </span>
                        <input type="text" class="form-control input-lg" id="userPhone" name="userPhone"
                               placeholder="请输入手机号" maxlength="11"onkeyup="this.value=this.value.replace(/D/g,'')"
                               onafterpaste="this.value=this.value.replace(/D/g,'')">
                        <span class="glyphicon form-control-feedback"></span>
                    </div>
                    <br>
     
                    <div class="input-group input-group-lg">
                        <span class="input-group-addon">
                            <span class="glyphicon glyphicon-picture"></span>
                        </span>
                        <input type="text" name="kaptcha" class="form-control input-lg" id="kaptcha" placeholder="请输入验证码">
                        <span class="glyphicon form-control-feedback"></span>
                        <span class="input-group-addon-kaptcha">
                            <img src="${pageContext.request.contextPath}/login/getkaptchaCode.do" id="kaptchaImage"
                                 style="cursor:pointer">
                        </span>
                    </div>
                    <br>
     
                    <div class="form-group center">
                        <p align="center">
                            <button type="button" class="btn btn-lg btn-md btn-primary" id="submit">登录</button>
                        </p>
                    </div>
                    <button type="button" id="showBox">显示</button>
                </form>
            </div>
        </div>
    </div>
    </body>
    <script>
     
        //更换验证码
        $("#kaptchaImage").click(function () {
            $(this).attr('src''${pageContext.request.contextPath}/login/getkaptchaCode.do?' + Math.floor(Math.random() * 100));
        });
     
        //校验手机号格式
        function checkUserPhone() {
            var $userPhone = $("#userPhone");
            var userPhone = $userPhone.val();
            if (!userPhone) {
                addCheckError($userPhone);
                return false;
            }
            var reg = /^1[3|4|5|7|8][0-9]{9}$/; //手机号验证规则
            if (!reg.test(userPhone)) {
                addCheckError($userPhone);
                return false;
            }
            addCheckOk($userPhone);
            return userPhone;
        }
     
        //校验验证码格式
        function checkKaptcha() {
            var $kaptcha = $("#kaptcha");
            var kaptcha = $kaptcha.val();
            if (!kaptcha) {
                addCheckError($kaptcha);
                return false;
            }
            var regKaptcha = /^[0-9a-zA-Z]{4}$/;//验证码验证规则
            if (!regKaptcha.test(kaptcha)) {
                addCheckError($kaptcha);
                return false;
            }
            //addCheckOk($kaptcha);
            return kaptcha;
        }
     
        //添加校验错误样式
        function addCheckError($element) {
            $element.parent("div").addClass("has-error");
            $element.next("span").addClass("glyphicon-remove-sign");
        }
        //移除校验错误样式
        function removeCheckError($element) {
            $element.parent("div").removeClass("has-error");
            $element.next("span").removeClass("glyphicon-remove-sign");
        }
        //添加校验成功样式
        function addCheckOk($element) {
            $element.parent("div").addClass("has-success");
            $element.next("span").addClass("glyphicon-ok-sign");
        }
        //移除校验成功样式
        function removeCheckOk($element) {
            $element.parent("div").removeClass("has-success");
            $element.next("span").removeClass("glyphicon-ok-sign");
        }
     
        //当输入框获得焦点时,移除成功或失败样式
        $("#userPhone,#kaptcha").on("focus", function () {
            removeCheckError($(this));
            removeCheckOk($(this));
        });
     
        //验证用书输入的验证码是否正确
        /*$('#kaptcha').on("blur", function () {
         var kaptcha = checkKaptcha();
         if (!kaptcha) {
         return false;
         }
         $.ajax({
         type: "POST",
         url: "${pageContext.request.contextPath}/login/check.do",
         data: {"kaptcha": kaptcha},
         dataType: "json",
         success: function (data) {
         alert(data.kaptchaFlag);
         }
         });
         });*/
     
        //登录
        $("#submit").on("click", function () {
            showBox();
            var userPhone = checkUserPhone();
            if (!userPhone) {
                hideBox();
                return false;
            }
            var kaptcha = checkKaptcha();
            if (!kaptcha) {
                hideBox();
                return false;
            }
            var url = "${url}";
            if (!url) {
                window.location.href = "${pageContext.request.contextPath }/index.jsp";
                return;
            }
            url = "${url}" "?bikeNo=" "${bikeNo}";
            $.ajax({
                type: "POST",
                url: "${pageContext.request.contextPath }/login/login.do",
                data: {
                    userPhone: userPhone,
                    kaptcha: kaptcha
                },
                dataType: "json",
                success: function (data) {
                    console.info("data:" + data);
                    if (data.kaptchaFlag) {
                        //alert("验证码正确");
                        addCheckOk($("#kaptcha"));
                        if (data.userFlag) {
                            window.location.href = url;
                        else {
                            alert("用户不存在");
                            hideBox();
                        }
                    else {
                        alert("验证码错误");
                        addCheckError($("#kaptcha"));
                        hideBox();
                    }
                }
            });
        });
        $("#showBox").click(function () {
            showBox();
        });
        $("#hideBox").click(function () {
            hideBox();
        });
        //页面屏蔽不可点击
        function showBox() {
            $(".hidebox").show().height($(window).height());
        }
        //去除隐藏层和弹出层
        function hideBox() {
            $(".hidebox").hide();
        }
    </script>
    </html>
  • 相关阅读:
    白盒测试的特点
    什么是黑盒测试
    黑盒测试优缺点
    单元测试
    孤立的测试策略
    自顶向下的单元测试策略
    自底向上的单元测试策略
    tabbedApliction
    redis的key对应mysql数据表设计
    达内javase_day1笔记
  • 原文地址:https://www.cnblogs.com/zhangjinghe/p/7918928.html
Copyright © 2011-2022 走看看