登录验证,复杂验证

2023-11-12

效果如图:

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <script>
        if(window!==top)
            top.location.replace(location.href);
    </script>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="/static/assets/libs/layui/css/layui.css"/>
{#    <link rel="stylesheet" href="{{ url_for('static',filename='plugin/layui/css/layui.css')}}"/>#}
{#    <link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}?v=318"/>#}
    <title>系统登陆</title>
    <style>
        body {
            background-image: url("{{ url_for('static',filename='images/bg-login.jpg') }}");
            background-repeat: no-repeat;
            background-size: cover;
            min-height: 100vh;
        }

        body:before {
            content: "";
            background-color: rgba(0, 0, 0, .2);
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
        }

        .login-wrapper {
            max-width: 420px;
            padding: 20px;
            margin: 0 auto;
            position: relative;
            box-sizing: border-box;
            z-index: 2;
        }

        .login-wrapper > .layui-form {
            padding: 25px 30px;
            background-color: #fff;
            box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.19);
            box-sizing: border-box;
            border-radius: 4px;
        }

        .login-wrapper > .layui-form > h2 {
            color: #333;
            font-size: 18px;
            text-align: center;
            margin-bottom: 25px;
        }

        .login-wrapper > .layui-form > .layui-form-item {
            margin-bottom: 25px;
            position: relative;
        }

        .login-wrapper > .layui-form > .layui-form-item:last-child {
            margin-bottom: 0;
        }

        .login-wrapper > .layui-form > .layui-form-item > .layui-input {
            height: 46px;
            line-height: 46px;
            border-radius: 2px !important;
        }

        .login-wrapper .layui-input-icon-group > .layui-input {
            padding-left: 46px;
        }

        .login-wrapper .layui-input-icon-group > .layui-icon {
            width: 46px;
            height: 46px;
            line-height: 46px;
            font-size: 20px;
            color: #909399;
            position: absolute;
            left: 0;
            top: 0;
            text-align: center;
        }

        .login-wrapper > .layui-form > .layui-form-item.login-captcha-group {
            padding-right: 135px;
        }

        .login-wrapper > .layui-form > .layui-form-item.login-captcha-group > .login-captcha {
            height: 46px;
            width: 120px;
            cursor: pointer;
            box-sizing: border-box;
            border: 1px solid #e6e6e6;
            border-radius: 2px !important;
            position: absolute;
            right: 0;
            top: 0;
        }

        .login-wrapper > .layui-form > .layui-form-item > .layui-form-checkbox {
            margin: 0 !important;
            padding-left: 25px;
        }

        .login-wrapper > .layui-form > .layui-form-item > .layui-form-checkbox > .layui-icon {
            width: 15px !important;
            height: 15px !important;
        }

        .login-wrapper > .layui-form .layui-btn-fluid {
            height: 48px;
            line-height: 48px;
            font-size: 16px;
            border-radius: 2px !important;
        }

        .login-wrapper > .layui-form > .layui-form-item.login-oauth-group > a > .layui-icon {
            font-size: 26px;
        }

        .login-copyright {
            color: #eee;
            padding-bottom: 20px;
            text-align: center;
            position: relative;
            z-index: 1;
        }

        @media screen and (min-height: 550px) {
            .login-wrapper {
                margin: -250px auto 0;
                position: absolute;
                top: 50%;
                left: 0;
                right: 0;
                width: 100%;
            }

            .login-copyright {
                position: absolute;
                bottom: 0;
                right: 0;
                left: 0;
            }
        }

        .layui-btn {
            background-color: #5FB878;
            border-color: #5FB878;
        }

        .layui-link {
            color: #5FB878 !important;
        }
    </style>
</head>
<body>
<div class="login-wrapper layui-anim layui-anim-scale layui-hide">
    <form class="layui-form">
        <h2>后台管理登陆</h2>
        <div class="layui-form-item layui-input-icon-group">
            <i class="layui-icon layui-icon-username"></i>
            <input class="layui-input" id="username" name="username" value="admin" placeholder="请输入登录账号" autocomplete="off"
                   lay-verType="tips" lay-verify="required" required/>
        </div>
        <div class="layui-form-item layui-input-icon-group">
            <i class="layui-icon layui-icon-password"></i>
            <input class="layui-input" id="pwd" name="pwd" value="123456" placeholder="请输入登录密码" type="password"
                   lay-verType="tips" lay-verify="required" required/>
        </div>

        <div class="layui-form-item">
            <input type="checkbox" id="remember" name="remember" title="记住密码" lay-skin="primary" checked>
<!--            <a href="reg.html" class="layui-link pull-right">注册账号</a>-->
        </div>
        <div class="layui-form-item">
            <button class="layui-btn layui-btn-fluid" lay-filter="loginSubmit" lay-submit="">登录</button>
        </div>

    </form>
</div>
<div class="login-copyright">copyright © 2020 航天科工系统仿真(北京)有限公司 all rights reserved.</div>
<script src="/static/assets/libs/layui/layui.js"></script>
{#<script src="{{ url_for('static',filename='plugin/layui/layui.js') }}"></script>#}
{#<script src="{{ url_for('static',filename='js/common.js') }}?v=318"></script>#}
<script>
    layui.use(['layer','form'],function () {
        var $ = layui.jquery;
        var layer = layui.layer;
        var form = layui.form
        $('.login-wrapper').removeClass('layui-hide');


        //登陆事件
        form.on('submit(loginSubmit)',function(data){
            console.log('login click');
            // 设置按钮文字 禁止点击
            $(data.elem).attr('disabled',true).text('登陆中....');
            // 网络请求
            var loadIndex = layer.load(2);
            console.log(JSON.stringify(data.field));
            $.ajax({
                type:'post',
                url:'/dologin',
                data:JSON.stringify(data.field),
                contentType:"application/json",
                dataType:'json',
                success:function(res){
                    console.log(res);
                    //关闭层
                    layer.close(loadIndex);
                    // 判断返回数据
                    if(res.code==0){
                        // 登录成功
                        $(data.elem).attr('disabled',true).text('登录成功');
                        // 使用layer的消息提示功能
                        layer.msg('登陆成功',{
                            icon:1,
                            time:1500
                        });
                        // 跳转到index页面
                        setTimeout(function(){
                            window.location.href = '/index';
                        },2000)
                    }
                    else{
                        layer.msg(res.msg,{
                            icon:2,
                            anim:6
                        });
                        // 把按钮设置成初始可用的状态
                        setTimeout(function(){
                            $(data.elem).text("登录").removeAttr("disabled");
                        },1000);
                    }
                },

            })
            return false;
        })

    })
</script>
</body>
</html>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

登录验证,复杂验证 的相关文章

  • Bootstrap 3 将文本与 Div 底部对齐

    我正在尝试在 Bootstrap 中进行如下设置 其中文本与图像底部对齐 THIS IS AN IMAGE And some text
  • A:Visited 未检测到 AJAX 链接

    我注意到a visited样式不适用于通过 JavaScript 请求的链接 但是 在标准用户单击时 会立即和随后的刷新时注册访问的完全相同的链接 我不确定这是否是独一无二的jQuery 移动 http forum jquery com t
  • 为什么在 CSS3 中启用硬件加速会降低性能?

    我在 css3 实验中将 10 000 个小 div 元素从浏览器视口的顶部移动到底部 对于此测试 我使用两种不同的方法 使用 GPU 加速translate3D x y z or translateZ 0 无需 GPU 加速 只需调整to
  • 如何使用 gatsby-image 不裁剪地显示图像?

    实例 图像可能加载缓慢 https suhadolnik photo surge sh portreti https suhadolnik photo surge sh portreti 我正在使用 GatsbyJS 制作一个摄影网站 并使
  • HTML5 canvas:有没有办法通过“最近邻居”重新采样来调整图像大小?

    我有一些 JS 对图像进行一些操作 我想要类似像素艺术的图形 所以我必须在图形编辑器中放大原始图像 但我认为用小图像进行所有操作然后使用 html5 功能放大它是个好主意 这将节省大量处理时间 因为现在my demo http anal s
  • 如何使用 Promise.all 获取 URL 数组?

    如果我有一个 url 数组 var urls 1 txt 2 txt 3 txt these text files contain one two three respectively 我想构建一个如下所示的对象 var text one
  • 随机字体颜色

    我需要用 2 或 3 种随机颜色为文本着色 我如何在 PHP 或 JavaScript 中执行此操作 color str pad sprintf x x x rand 0 255 rand 0 255 rand 0 255 6 rand 0
  • 如何避免在 ASP.NET 代码隐藏中编写混乱的 JavaScript?

    我想知道在 ASP NET 中使用 Javascript 的最佳实践是什么 我不知道这是否是最佳实践 但我在代码隐藏中添加了 javascript 客户端事件 它工作正常 但这是最佳实践吗 例如 我有一个单选按钮控件 并在 Page Ini
  • 在 jQuery 中,如果我有一个开始类和结束类,我如何用 div 包装多个元素

    好的 这里有一些 html 我有一些开始和结束课程 但为此我只添加了每门课程 1 门 div span nbsp span div div span nbsp span div div class start lt start span n
  • React hooks 需要返回值吗?

    我最近开始在我的 React 应用程序中构建自定义挂钩 并一直在关注 React 网站上的文档 然而 我正在构建的钩子不需要返回值 因为它们在初始化时为 Redux 设置数据 Example custom hook export const
  • (typeof variable === "function") 和 jQuery.isFunction() 有什么区别?

    我一直用 typeof variable function 我偶然发现jQuery isFunction 我想知道 jQuery方法中的typeof方法有什么区别 不仅有什么区别 而且 什么时候适合使用typeof方法 什么时候适合使用jQ
  • 修复了 div 背景重叠浏览器滚动条的问题

    我以前从未见过的非常奇怪的行为 我有一个固定位置的 div 它有一个透明的 png 背景图像 z index 设置为 1 以便内容可以使用滚动条在固定图像上滚动 我将其放置在底部和右侧 0px 处 但图像与滚动条重叠 无论如何 在 FF 和
  • BigVideo.js 播放结束时 URL 重定向

    我已经使用基于 Video js 的 BigVideo 在页面上实现了背景视频 单击 div 时 视频会在后台播放 我一生都无法弄清楚如何在视频播放完毕后重定向到另一个 URL 这是我正在使用的代码 视频播放链接 a href vids g
  • 无法使用 Jsoup HTML 解析器 Java 实现某些功能

    我无法使用 Jsoup Java 库解析以下场景的一些文本 1 This is b My Text b some other b b text as well b b b non empty tag1 b other text 预期输出 s
  • Web 动画 API - 不同的动画持续时间?

    我正在尝试 Web Animations API 该 API 目前仅适用于 Webkit 浏览器 可以想象 文档有点稀疏 这是我在上面找到的一篇博客文章 http updates html5rocks com 2014 05 Web Ani
  • 将 blob 转换为 base64

    这是我想要执行的代码片段Blob to Base64 string 此注释部分有效 当由此生成的 URL 设置为 img src 时 它会显示图像 var blob items i getAsFile var URLObj window U
  • 添加鼠标事件到svg ,检测网格悬停

    我有一个有点复杂的问题 我正在尝试通过 svg 渲染网格 然后将事件侦听器添加到网格中 目前我正在通过渲染网格
  • 如果满足条件,Angular JS 如何添加 CSS 类

    我正在创建一个截断指令 如果字符超过 10 我就会截断文本字符串 然后它将显示 我的目标是编写一个条件 如果字符少于 10 个 则删除 如果有人对我如何实现此目标有任何想法 我会坚持这一点并接受建议 这是我的代码 var app angul
  • 创建由线连接的 CSS3 圆圈

    我必须在 CSS 中实现以下圆形和线条组合 并且我正在寻找有关如何有效实现此功能的指示 圆圈和线条应如下所示 我能够这样实现圆圈 span step background ccc border radius 0 8em moz border
  • 如何强制重新安装 React 组件?

    假设我有一个具有条件渲染的视图组件 render if this state employed return div div

随机推荐

  • 【PTA】 7-1 矩阵链相乘问题 (20 分)

    输入 5 30 35 15 5 10 20 输出 11875 代码 include
  • Python Numpy数组保存

    Numpy提供了几种数据保存的方法 以3 4数组a为例 1 a tofile filename bin 这种方法只能保存为二进制文件 且不能保存当前数据的行列信息 文件后缀不一定非要是bin 也可以为txt 但不影响保存格式 都是二进制 这
  • websocket没准备好如何解决_websocket没准备好点确定继续怎么解决,这事android? 爱问知识人...

    请采纳点赞 你可以把WebSocket看成是HTTP协议为了支持长连接所打的一个大补丁 它和HTTP有一些共性 是为了解决HTTP本身无法解决的某些问题而做出的一个改良设计 在以前HTTP协议中所谓的keep aliveconnection
  • RE整改实例——接口缝隙引起的EMC问题整改

    前言 背景 CT某一产品中的控制电路 在RE测试时候750MHz频点超过3dB 整改方法 经过近场测量分析 辐射来源于接口缝隙 经公式计算 750MHz频率引起的对应波长 0 4m 在EMC允许缝隙的长度选择中建议小于二十分之一波长 则 2
  • 只等你来!OpenAtom XuperChain 开发者夏季论坛来啦

    OpenAtom XuperChain 开源两周年之际 我们将于 6 月 25 日在上海浦东新区举办 OpenAtom XuperChain 开发者夏季论坛 特邀研究机构 企业等开源生态合作伙伴 共同探讨区块链技术发展路径和落地方向 本次论
  • solr6.6.0部署到tomcat

    准备工作 solr 6 6 0 apache tomcat 8 jdk1 8 0 131 部署 首先把solr 6 6 0 server solr webapp中的webapp目录拷贝到apache tomcat 8 5 15下的webap
  • 数据结构与算法-基础排序算法及TopK问题(Python)

    排序 基础排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序 经典问题 TopK 堆排序 快速排序 基础排序算法 如果在面试中遇到排序算法 先问清楚数据的特点 结合具体的业务场景 多和面试官交流 先陈述思路 得到面试官肯定以后再编码
  • Java8方法引用

    内容简介 方法引用Demo详解 通过5种语法使用方法引用 方法引用使用总结 1 在Java8中方法引用Demo详解 1 1 方法引用出现的背景 在使用Lambda表达式的时候 我们实际上传递进去的代码就是一种解决方案 拿什么参数做什么操作
  • Spring MVC中如何限制Controller为POST或GET方式接收参数呢?

    转自 Spring MVC中如何限制Controller为POST或GET方式接收参数呢 在Web页面开发中 最常用的接收参数值方式有 GET和POST方式 那么SpringMVC中如何定义参数的接收方式呢 实现思路 只需在注解的时 使用m
  • mark_as_advanced

    Mark cmake cached variables as advanced mark as advanced CLEAR FORCE VAR VAR2 Mark the named cached variables as advance
  • 什么是子查询?

    当一个查询结果是另一个查询的条件的时候 那么就称为子查询 子查询是在SQL语句内的另外一条SELECT语句 在SELECT INSERT UPDATE或DELETE命令中只要是表达式的地方都可以包含子查询 子查询甚至可以包含在另外一个子查询
  • 自动化测试-Appium-Desired Capabilities参数详解

    分类 定义与说明 General Capabilities 通用功能 Update settings Android Only UIAutomator 1 UIAutomator2 Only Espresso Only iOS Only i
  • 数据仓库灵魂30问之如何建设数据中台?一幅图说清中台。

    什么是中台 什么是数据中台 数据仓库实现了企业数据模型的构建 大数据平台解决了海量 实时数据的计算和存储问题 数据中台要解决什么呢 数据如何安全的 快速的 最小权限的 且能够溯源的被探测和快速应用的问题 数据中台不应该被过度的承载平台的计算
  • 进程同步,信号量,互斥变量等说明

    0 前言 工作三年 敲了3年代码 PHP C Java C 等 开发过几种产品 非计算机科班出身 全部编程是自学最近闲来无事买了一本 计算机操作系统 第四版 学一下个人感觉对比较重要的章节 增加对编程的理解 1 进程的描述 1 1 进程的定
  • Python多元线性回归预测模型实验完整版

    多元线性回归预测模型 实验目的 通过多元线性回归预测模型 掌握预测模型的建立和应用方法 了解线性回归模型的基本原理 实验内容 多元线性回归预测模型 实验步骤和过程 1 第一步 学习多元线性回归预测模型相关知识 一元线性回归模型反映的是单个自
  • 在html中取消超链接的下划线

    在html的超链接a标签中取消下划线需要用到text decoration a text decoration none
  • AI部署之路

    作者 Oldpan 编辑 汽车人 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 模型部署 技术交流群 后台回复 模型部署工程 获取基于TensorRT的分类 检测任务的部署源码 好久没更文了
  • WSL2加载独立硬盘和设置固定IP

    最近发现了win10 包括win11 上的神器 Linux子系统 抱着玩一玩的态度安装了 琢磨了几天 逐步把Ubuntu完善起来了 发现完全可以当作WIN Linux双系统使用 还不用重启系统 作为生产力工具绰绰有余 总结了常用的工具软件和
  • CPU、GPU、DPU、TPU、NPU...傻傻分不清楚?实力扫盲——安排

    人工智能的发展离不开算力的支持 算力又是依附于各种硬件设备的 没有了算力设备的加持 就好比炼丹少了丹炉一样 可想而知 人工智能智能也就无用武之地了 以深度学习为主的人工智能方向的发展更是离不开强大的算力支持 随着深度学习的不断发展 各种各样
  • 登录验证,复杂验证

    效果如图