这里我们选择的方法是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>