Bootstrap实现前端登录页面带验证码功能完整示例
作者:人间四月天 发布时间:2024-04-16 08:48:18
标签:Bootstrap,登录页面,验证码
本文实例讲述了Bootstrap实现前端登录页面带验证码功能。分享给大家供大家参考,具体如下:
Bootstrap有自定义的验证码样式,在前端页面可以直接使用,他的css、js在使用前要在开头引入
上代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- 告诉浏览器网页所识别的文件类型及语言类型 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>登录</title>
<!-- 让一些搜索引擎搜索到你的网页 -->
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="external nofollow" >
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/popper.js/1.12.5/umd/popper.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<script src="tool.js"></script>
<style>
.carousel-inner img {
width:100%;
height:100%;
}
.jumbotron {
margin-top: 10px;
margin-bottom: 0px;
padding-top: 10px;
}
#demo {
width:100%;
height: 500px;
}
.row {
height: 264px;
}
.left {
float: left;
width: 70%;
}
.right {
float: left;
width: 30%;
}
.card {
height: 340px;
}
.carousel-inner {
height: 500px;
}
.footer {
position: absolute;
bottom: 0;
height: 60px;
}
.jumheight1 {
height: 100px;
}
.jumheight2 {
height: 100px;
}
.end_name {
margin-bottom: 5px;
}
.footer2 {
padding-top: 210px;
text-align: center;
}
.test{
margin-bottom: 75px;
}
.carousel-control-prev,
.carousel-control-next{
bottom: 120px;
}
</style>
</head>
<body>
<div>
<form class="form active" method="post" action="{:url('index/Login/doLogin')}">
<div class="jumbotron text-info bg-light jumheight1">
<h1>图书阅读网</h1>
<p>一个免费的图书网站</p>
</div>
<!-- 轮播图 -->
<!-- 指示符 -->
<div class="row">
<div class="left">
<div id="demo" class="carousel slide " data-ride="carousel">
<ul class="carousel-indicators">
<li data-target="#demo" data-slide-to="0" class="active"></li>
<li data-target="#demo" data-slide-to="1"></li>
<li data-target="#demo" data-slide-to="2"></li>
</ul>
<!-- 轮播图片 -->
<div class="carousel-inner">
<div class="carousel-item active">
<img src="http://static.runoob.com/images/mix/img_fjords_wide.jpg">
</div>
<div class="carousel-item">
<img src="http://static.runoob.com/images/mix/img_nature_wide.jpg">
</div>
<div class="carousel-item">
<img src="http://static.runoob.com/images/mix/img_mountains_wide.jpg">
</div>
</div>
<!-- 左右切换按钮 -->
<a href="#demo" rel="external nofollow" rel="external nofollow" class="carousel-control-prev" data-slide="prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a href="#demo" rel="external nofollow" rel="external nofollow" class="carousel-control-next" data-slide=next>
<span class="carousel-control-next-icon"></span>
</a>
</div>
</div>
<div class="right">
<!-- 登陆窗口 -->
<div class="card">
<div class="card-header">
用户登陆
</div>
<div class="card-body">
<form>
<table style="border-collapse: separate;/*border-spacing: 30px 20px;*/">
<tr>
<td class="margin-top:10">
<label>电话号码:</label>
</td>
<td>
<input type="text" name="username" pattern="^\d{11}" id="username" class="form-control" placeholder="请输入您的电话号码">
<!-- <input type="text" name="username" pattern="^\d{11}" id="username" class="form-control" placeholder="请输入您的电话号码" required> -->
</td>
</tr>
<tr>
<td>
<label>密码:</label>
</td>
<td>
<input type="password" name="password" id="password" class="form-control" placeholder="请输入您的密码">
</td>
</tr>
<tr>
<td>
<label for="captcha" class="test">验证码:</label>
</td>
<td>
<input type="text" name="captcha" class="form-control " id="captcha" placeholder="请输入验证码">
<!-- 点击验证码更换 -->
<br>
<div class="code-img"><img height="50px" src="{:captcha_src()}" alt="captcha" onClick="this.src='{:captcha_src()}?'+Math.random()"/></div>
</td>
</tr>
</table>
<div class="footer">
<button type="submit" class="btn btn-primary" >登陆</button>
<button type="submit" class="btn btn-secondary " formaction="{:url('index/Repassword/index')}" >忘记密码?</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
fieldTest();
</script>
</body>
</html>
效果图:
这里还有轮播图,点击验证码时会更新
可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
来源:https://blog.csdn.net/weixin_42580925/article/details/102691357
0
投稿
猜你喜欢
- SQL Server中加密是层级的,每一个上层为下提供保护。如图:实例:/** SMK(Service Master Key)在SQL Se
- 1、from ... import 导入from package import module1, module2, module3, ...
- 官网下载就好, https://www.python.org/downloads/release/python-352/用installer
- 本文实例讲述了python版本的读写锁操作方法。分享给大家供大家参考,具体如下:最近要用到读写锁的机制,但是python2.7的自带库里居然
- 聚合函数 count,max,min,avg,sum... select count (*) from T_Employee select
- 论坛上看到有人问ASP是否可以定时触发事件,我就顺便做了一个玩玩。其实做这个的原理是很简单的,只是我们当时没有仔细的去想想该怎么实现,我这里
- 随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领
- 在Python中,数据存储方式分为同步存储和异步存储。同步写入速度比较慢,而爬虫速度比较快,有可能导致数据保存不完整,一部分数据没有入库。而
- 前言本文使用 cpu 版本的 TensorFlow 2.4 ,分别搭建单层 Bi-LSTM 模型和多层 Bi-LSTM 模型完成文本分类任务
- 下面说说主要实现思路: 1、存取图片 (1)、将图片文件转换为二进制并直接存进sql server //UploadHelper.cs //
- 本文实例为大家分享了python模拟事件触发机制的具体代码,供大家参考,具体内容如下EventManager.py# -*- encodin
- 使用一阶线性方程预测波士顿房价载入的数据是随sklearn一起发布的,来自boston 1993年之前收集的506个房屋的数据和价格。loa
- 通过将身份认证令牌直接传给 API 服务器,可以避免使用 kubectl 代理,像这样:使用 grep/cut 方式:# 查看所有的集群,因
- 一、命名元祖在python基础中, 我们学习元祖的时候,取元祖内部的元素都是通过索引来进行取值的。但是这种取值方式不够友好, 所以我们引入命
- 今天在群里,熊猫君提议整理一个帖子,一方面为初学者提供一个入门指南,另一方面也象借此和已经在从事这个行业进行一点交流。下面是我从事这个行当多
- Python 能做很多无聊,但有意思的事情,例如接下来的一些案例。以下程序,不要发代码,要不实现不了你整蛊的目的。要打包成一个 exe 程序
- django admin管理工具有很多好用的功能,例如搜索框、筛选器等,编码简单,功能强大。但是常规的时间筛选有一定局限性,只能显示一定时间
- 第一种情况os.system('ps aux')执行系统命令,没有返回值第二种情况result = os.popen(
- Todo清单需要实现的功能有添加任务、删除任务、编辑任务,操作要关联数据库。任务需要绑定用户,部门。用户需要绑定部门。{#自己编写一个基类模
- 本文实例讲述了Python基于回溯法子集树模板解决数字组合问题。分享给大家供大家参考,具体如下:问题找出从自然数1、2、3、...、n中任取