注册登录二合一之bootstrap
来源
https://bootsnipp.com/snippets/featured/login-and-register-tabbed-form
jquery插件
需导入bootstrap插件
这个实现真实的功能的话,用ajax最好,避免注册刷新的时候,回到默认的登录,导致问题
HTML页面
{% extends 'base.html' %} {% load staticfiles %} {% block login_register %} <link rel="stylesheet" href="{% static 'login/my_login.css' %}"> {# <title>login</title>#} <style> .btn-login { background-color: #59B2E6; } .btn-register { background-color: #1CB94A; } </style> <div class="container"> <div class="row"> <div class="col-md-6 col-md-offset-3"> <div class="panel panel-login"> <div class="panel-heading"> <div class="row"> <div class="col-xs-6"> <a href="#" class="active" id="login-form-link">Login</a> </div> <div class="col-xs-6"> <a href="#" id="register-form-link">Register</a> </div> </div> <hr> </div> <div class="panel-body"> <div class="row"> <div class="col-lg-12"> <form id="login-form" action="/login/" method="post" role="form" style="display: block;"> {% csrf_token %} <div class="form-group"> <input type="text" name="username" id="username" tabindex="1" class="form-control" placeholder="Username"> </div> <div class="form-group"> <input type="password" name="password" id="password" tabindex="2" class="form-control" placeholder="Password"> </div> <span>{{ mgs }}</span> <div class="form-group text-center"> <input type="checkbox" tabindex="3" class="" name="remember" id="remember"> <label for="remember"> Remember Me</label> </div> <div class="form-group"> <div class="row"> <div class="col-sm-6 col-sm-offset-3"> <input type="submit" name="login-submit" id="login-submit" tabindex="4" class="form-control btn btn-login" value="Log In">{{ msg }} </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-lg-12"> <div class="text-center"> <a href="https://phpoll.com/recover" tabindex="5" class="forgot-password">Forgot Password?</a> </div> </div> </div> </div> </form> <form id="register-form" action="/" method="post" role="form" style="display: none;"> <div class="form-group"> <input type="text" name="user" id="users" tabindex="1" class="form-control" placeholder="Username" >{{ msg }} </div> <div class="form-group"> <input type="email" name="email" id="email_A" tabindex="1" class="form-control" placeholder="Email Address">{{ msg }} </div> <div class="form-group"> <input type="password" name="password" id="pwd" tabindex="2" class="form-control" placeholder="Password"> </div> <div class="form-group"> <input type="password" name="c_pwd" id="cpassword" tabindex="2" class="form-control" placeholder="Confirm Password">{{ msg }} </div> <div class="form-group"> <div class="row"> <div class="col-sm-6 col-sm-offset-3"> <input type="button" name="register-submit" id="register-submit" tabindex="4" class="form-control btn btn-register" onclick="btn()"; value="Register Now">{{ msgs }} </div> </div> </div> </form> </div> </div> </div> </div> </div> </div> </div> <script src="{% static 'jquery-3.2.1.js' %}" type="text/javascript"></script> {#<script src="{% static 'dist/js/bootstrap.min.js' %}" type="text/javascript"></script>#} <script src="{% static 'dist/js/bootstrap.js' %}" type="text/javascript"></script> <script> $(function () { $('#login-form-link').click(function (e) { $("#login-form").delay(100).fadeIn(100); $("#register-form").fadeOut(100); $('#register-form-link').removeClass('active'); $(this).addClass('active'); e.preventDefault(); }); $('#register-form-link').click(function (e) { $("#register-form").delay(100).fadeIn(100); $("#login-form").fadeOut(100); $('#login-form-link').removeClass('active'); $(this).addClass('active'); e.preventDefault(); }); }); {# $("#register-submit").click(function () {#} function btn() { var user = $('#users').val(); var pwd = $('#pwd').val(); var email = $('#email_A').val(); var c_pwd = $('#cpassword').val(); console.log(user, pwd, email, c_pwd); $.ajax({ url: '/register/', type: "POST", dataType:"JSON", data: {user: user, pwd: pwd, email: email, c_pwd: c_pwd}, success: function (arg) { if(arg.status){ window.location.href='/login/' }else{ alert(arg.msg) } } }); } </script> {% endblock %}
HTML页面
css页面
body { padding-top: 90px; } .panel-login { border-color: #ccc; -webkit-box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.2); box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.2); } .panel-login > .panel-heading { color: #00415d; background-color: #fff; border-color: #fff; text-align: center; } .panel-login > .panel-heading a { text-decoration: none; color: #666; font-weight: bold; font-size: 15px; -webkit-transition: all 0.1s linear; -moz-transition: all 0.1s linear; transition: all 0.1s linear; } .panel-login > .panel-heading a.active { color: #029f5b; font-size: 18px; } .panel-login > .panel-heading hr { margin-top: 10px; margin-bottom: 0px; clear: both; border: 0; height: 1px; background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0)); background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0)); background-image: -ms-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0)); background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0)); } .panel-login input[type="text"], .panel-login input[type="email"], .panel-login input[type="password"] { height: 45px; border: 1px solid #ddd; font-size: 16px; -webkit-transition: all 0.1s linear; -moz-transition: all 0.1s linear; transition: all 0.1s linear; } .panel-login input:hover, .panel-login input:focus { outline: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; border-color: #ccc; } .btn-login { background-color: #59B2E0; outline: none; color: #fff; font-size: 14px; height: auto; font-weight: normal; padding: 14px 0; text-transform: uppercase; border-color: #59B2E6; } .btn-login:hover, .btn-login:focus { color: #fff; background-color: #53A3CD; border-color: #53A3CD; } .forgot-password { text-decoration: underline; color: #888; } .forgot-password:hover, .forgot-password:focus { text-decoration: underline; color: #666; } .btn-register { background-color: #1CB94E; outline: none; color: #fff; font-size: 14px; height: auto; font-weight: normal; padding: 14px 0; text-transform: uppercase; border-color: #1CB94A; } .btn-register:hover, .btn-register:focus { color: #fff; background-color: #1CA347; border-color: #1CA347; }
css样式
注册登录二合一之bootstrap的更多相关文章
- SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能
SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接 SpringBoot注册登录(三):注册 ...
- node.js 初学(二)—— 搭建注册/登录服务器
node.js 初学(二)—— 搭建注册/登录服务器 理论上来说,代码实现在理论和实际上是一样的.但实际上来说,他们不是 做一个最简单的用户注册登录功能 1.接口定义: 注册:/user?act=re ...
- 如何设计一个 App 的注册登录流程?
移 动设备发力之前的登录方式很简单:用户名/邮箱+密码+确认密码,所有的用户登录注册都是围绕着邮箱来做.随着移动设备和社交网络的普及,邮箱不再是唯 一,渐渐的出现了微博,QQ,微信等第三方登录方式,手 ...
- Discuz! X2.5判断会员登录状态及外部调用注册登录框
Discuz! X2.5判断会员登录状态及外部调用注册登录框 有关discuz论坛会员信息,收集的一些资料: 用dedecms+discuz做了个门户加论坛形式的网站,但是dedecms顶部目前只能q ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- Web存储—简易注册登录
Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,cookie只 ...
- 连接数据库+注册->登录->抽奖(有关联关系的接口)
注册账号信息需要写入数据库,登录和抽奖时从数据库获取数据 一.连接数据库 my_sql.py: import pymysql class MyDb: def __init__(self,host,pa ...
- 巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证
1.需求分析 .项目 ()业务 ()权限的管理 .CRM customer relationship management 客户关系管理系统 .谁来使用CRM? 销售&&班主任& ...
- 使用ajax 做注册登录示例,
需求:使用AJAX 做一个注册登录示例, 如用户名已存在, 在填写用户名时给与提示. 1:首先创建一个新的django项目.做好配置 在settings.py文件里做好数据库配置: 1. 告诉Djan ...
随机推荐
- AFNetworking 源码解析
3.0 之后,就取消了NSOperation的控制. 因为根据Apple Developer Document的文档 https://developer.apple.com/documentation ...
- MySQL数据类型--与MySQL零距离接触2-5字符型
CHAR(5) : 存储abc时,由于长度不够,所以abc后面会补充2个空格,也就是abc CHAR 0-255字节 定长字符串 VARCHAR 0-65535 字节 变长字符串 ENUM('valu ...
- android hook native函数
大概2年前写的代码,今天突然要用到,找了半天,这里记录下 用到的库: https://pan.baidu.com/s/1htuUQX2 #include <jni.h> #include ...
- cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
记录一下,好开心,感觉今天自己又学到东西了,对于屏幕双击事件本来还毫无头绪的,今天得以解决总算没白费加班,其实原理很简单:就是在点击事件里做一个判断,这个判断就是需要获取当前系统的时间的毫秒差,第一次 ...
- js跨域需要token。
将rems从tms中独立出来以后,每次都需要先打开tms,再打开rems,如果我足够聪明,那么很容易可以分析得到原因. 第一,会导致跨域出现问题的易错点就那么几个,是否加上“Access-Contro ...
- Android -- 打造我们的StepView
1,前两天我们分析了Github开源的StepView <自定义StepView实现个人信息验证进度条>,这两天想着想自己写一个,so,就有了这一篇文章,不废话,先看看实现的效果: 2,首 ...
- Python全栈-day6-day7-字符编码和文件处理
一.字符编码 1.编码基础 定义:人在使用计算机时,使用的是人类能够读懂的字符,使用者必须通过一张字符和数字间的相对应关系表实现人机交互,这一系列标准称为字符编码 Python应用中解决核心字符串乱码 ...
- Linq To SQL LEFT OUTER JOIN (Left Join)
SQL: SELECT [t0].[ProductName], [t1].[TotalPrice] AS [TotalPrice] FROM [Product] AS [t0] LEFT OUTER ...
- 类模板中的static关键字
特性: 1.从类模板实例化的每个模板类有自己的类模板数据成员,该模板类的所有对象共享一个static数据成员 2. 和非模板类的static数据成员一样,模板类的static数据成员也应该在文件范围定 ...
- 关于用户登录状态存session,cookie还是数据库或者memcache的优劣
session中保存登陆状态: 优:整个应用可以从session中获取用户信息,并且查询时很方便.在session中保存用户信息是不可缺少的(web应用中) 缺:session中不宜保存大量信息,会增 ...