这里我们选择的方法是cookie的方式去记录

首先我们写将用户名和密码写到cookie的js代码

//保存到cookie
function save_cookies(){
if($("#remember").prop("checked")){
var username = $("#username").val();
var password = $("#password").val(); $.cookie("remember","true",{expires:7});
$.cookie("username",username,{expires:7 });
$.cookie("password",password,{expires:7 });
}else{
$.cookie("remember","false",{expires:-1});
$.cookie("username","",{ expires:-1 });
$.cookie("password","",{ expires:-1 });
}
};

注意:$("#id").prop("checked")    通过这个来获取复选框 勾选状态   jquery1.6版本之后用prop方法,之前版本用attr方法。

千万注意prop不要写错,我就把prop写成了porp找了好久的问题,原来是自己把自己坑了。

1.$.cookie("username") 读取cookie 名为username的值

2.$cookie("username","qcbin",{expires:7})  创建cookie 名为username值为qcbin,保存期限为7天。   如果将{expires:7}替换为365意思是,浏览器关闭即清除

写加载cookie的代码,这部分js代码,我们放在head头中,这样我们加载登录页的时候就会先去读cookie。

<script>
$(document).ready(function(){
var rem = $.cookie('remember');
if(rem){
$("#remember").prop("checked",true);
$("#username").val($.cookie("username"));
$("#password").val($.cookie("password"));
}
});
</script>

注意:$(document).ready() 这个方法,浏览器就绪,就开妈执行这个下边的代码。

登录的html示例代码:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>login-AM</title>
<script src="/static/js/jquery-3.2.1.min.js"></script>
<link href="/static/css/bootstrap3.3.7.min.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="/static/js/bootstrap3.3.7.min.js"></script>
<script src="/static/js/jquery.cookie.js"></script>
<style> .form{background: rgba(255,255,255,0.2);width:400px;margin:120px auto;}
/*阴影*/
.fa{display: inline-block;top: 27px;left: 6px;position: relative;color: #ccc;}
input[type="text"],input[type="password"]{padding-left:26px;}
.checkbox{padding-left:21px;}
</style>
<script>
$(document).ready(function(){
var rem = $.cookie('remember');
if(rem){
$("#remember").prop("checked",true);
$("#username").val($.cookie("username"));
$("#password").val($.cookie("password"));
}
});
</script>
</head>
<body>
<div class="container">
<div class="form row">
<div class="form-horizontal col-md-offset-3" id="login_form">
<h3 class="form-title">LOGIN</h3>
<div class="col-md-9">
<div class="form-group">
<i class="fa fa-user fa-lg"></i>
<input class="form-control required" type="text" placeholder="Username" id="username" name="username" autofocus="autofocus" maxlength="20"/>
</div>
<div class="form-group">
<i class="fa fa-lock fa-lg"></i>
<input class="form-control required" type="password" placeholder="Password" id="password" name="password" maxlength="8"/>
</div>
<div class="form-group">
<label class="checkbox">
<input type="checkbox" id="remember" value="1" />记住我
</label> </div>
<div class="form-group col-md-offset-9">
<a type="button" class="btn btn-primary pull-right" id="register" href="/register/">注册</a>
<button type="button" class="btn btn-success pull-right" id="submit">登录</button>
</div>
<div class="form-group">
<i class="fa fa-exclamation-triangle fa-lg" id="display_text"></i>
</div>
</div>
</div>
</div>
</div>
<script> $("#submit").click(function(){
if($("#username").val()!="" && $("#password").val()!="")
{
save_cookies();
$.ajax({
url:'/login_validation/',
type:'post',
data:{
'username':$("#username").val(),
'password':$("#password").val()
},
dataType:'json',
success:function(args){
if(args.res==1){
window.location="/index/";
}else{
$("#display_text").html("用户名或密码错误.");
}
},
error:function(data){
alert('ajax error');
}
});
}else{
alert("用户名或密码不能为空。");
}
}); //保存到cookie
function save_cookies(){
if($("#remember").prop("checked")){
var username = $("#username").val();
var password = $("#password").val(); $.cookie("remember","true",{expires:7});
$.cookie("username",username,{expires:7 });
$.cookie("password",password,{expires:7 });
}else{
$.cookie("remember","false",{expires:-1});
$.cookie("username","",{ expires:-1 });
$.cookie("password","",{ expires:-1 });
}
}; </script> </body>
</html>

最新文章

  1. C++多线程的几个重要方法解析CreateEvent / SetEvent /ResetEvent/ 等
  2. [网络流24题]餐巾(cogs 461)
  3. PowerShell定时抓取屏幕图像
  4. Java正则表达式的最简单应用
  5. php 如何进入mysql数据库
  6. 2016 - 1 - 3 国旗选择demo
  7. Java——File(文件)
  8. Shadow Mapping 的原理与实践(一)
  9. ZOJ2112--Dynamic Rankings (动态区间第k大)
  10. 异步编程设计模式Demo - AsyncComponentSample
  11. poj1966Cable TV Network(无向图最小点割集 ISAP+邻接矩阵)
  12. VC6集成开发环境使用参考
  13. 初次就这么给了你(Django-rest-framework)
  14. OSI七层模型对应的协议
  15. Python函数的装饰器修复技术(@wraps)
  16. Python成绩雷达图
  17. C# 转换关键字 operator
  18. 学习mongoDB的网站
  19. 浅谈JSONObject与JSONArray的区别
  20. python学习笔记Day3

热门文章

  1. 口语详解|为什么&ldquo;how to say&rdquo;是错的?
  2. PostgreSQL+PostGIS安装以及使用
  3. 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 网络层协议 MAC帧、IP数据报、TCP报文 关系 IP地址与硬件地址 链路层与网络层
  4. [daily][netctl] netctl有线网络连接使用802.1x进行验证上网
  5. U3d 入门
  6. 转:JDBC中关于PreparedStatement.setObject的一些细节说明
  7. 转:JAVA守护线程
  8. 内部排序-&gt;选择排序-&gt;简单选择排序
  9. 《HTTP - http报文》
  10. SQL server 2005数据库的还原与备份