js cookie记住密码

本文介绍使用纯JS及jQuery两种方式实现登录页面的记住密码功能,包括设置、读取和删除cookie的过程。

一. js 实现

html:

<form id="form22" name="form22" action="checklogin.action" method="post" >
    <div class="username" style="margin-top:50px;">
        <label>用户名:</label>
        <input type="text" name="username" id="userName" />
        <span id="myuser" style="color: red; font-size:12px; font-weight: normal;"></span>
    </div>

    <div class="password">
        <label>密&nbsp;码:</label>
        <input name="password" id="passWord"  type="password" />
        <span id="mypass" style="color: red; font-size:12px; font-weight: normal;"></span>
    </div>

    <div class="user_type" >
       <label>&nbsp;&nbsp;</label>
       <input type="checkbox" id="saveUserName" style="float: left; margin-top:3px;"  />    
       <span> 记住用户</span>      
    </div>

    <input type="button" value="" class="btn_login" id="btn_login" onclick="checkform();"/>

</form>

cookie.js:

function setCookie (name, value) {
       var Days = 30; //此 cookie 将被保存 30 天
       var exp = new Date();
       exp.setTime(exp.getTime() + 1000);
       if(value==""||value=="null"
           ||value=="null"||value==" "){
       }else{
       document.cookie = name + "="+ escape(value) +";expires=Sun, 17-Jan-2038 19:14:07 GMT";
       }
}
function getCookie(sName){
      var aCookie = document.cookie.split("; ");
      for (var i=0; i < aCookie.length; i++)
      {
          var aCrumb = aCookie[i].split("=");
          if (sName == aCrumb[0])
          {
               return aCrumb[1];
           }
       }
      return null;
}
function checkCookieExist(name){
    if (getCookie(name))
        return true;
    else
        return false;
}

function deleteCookie(name, path, domain){
    var strCookie;
    // 检查Cookie是否存在
    if (checkCookieExist(name)){
        // 设置Cookie的期限为己过期
        strCookie = name + "=";
        strCookie += (path) ? "; path=" + path : "";
        strCookie += (domain) ? "; domain=" + domain : "";
        strCookie += "; expires=Thu, 01-Jan-70 00:00:01 GMT";
        document.cookie = strCookie;
    }
}
function saveCookie(name, value, expires, path, domain, secure){
    var strCookie = name + "=" + value;
    if (expires){
        // 计算Cookie的期限, 参数为天数
        var curTime = new Date();
        curTime.setTime(curTime.getTime() + expires*24*60*60*1000);
        strCookie += "; expires=" + curTime.toGMTString();
    }
    // Cookie的路径
    strCookie += (path) ? "; path=" + path : "";
    // Cookie的Domain
    strCookie += (domain) ? "; domain=" + domain : "";
    // 是否需要保密传送,为一个布尔值
    strCookie += (secure) ? "; secure" : "";
    document.cookie = strCookie;
}

login.js

window.onload = function(){
    //console.log("ctx: " + "${ctx}");

    var name = getCookie("loginUserName");
    document.getElementById("passWord").value="";
    if(name != null && name != "") {
        document.getElementById("userName").value = name;                         document.getElementById("passWord").focus();
    } else {        document.getElementById("userName").focus();
   }

}

function checkform(){
   ......
   var isChecked = document.getElementById("saveUserName").checked;
    if(isChecked) {
        setCookie("loginUserName",userName);
    }   
   ......
}

二. jquery 实现

参考:
http://www.cnblogs.com/lindaZ/p/5069981.html

html:

<form class="form-signin">
  <input type="text" id="username" name="account" autofocus required placeholder="用户名" class="form-control" style="width: 250px;  margin-bottom: 5px;">
  <input type="password" id="password" name="password" required  placeholder="密码" class="form-control" style="width: 250px;">
  <br/>
  <input id="remember_me" type="checkbox" name="remember_me" onkeydown="check_enter(event)" style="width:250;">
  <span for="remember_me" onkeydown="check_enter(event)" style="width:250px">记住我</span>
  <br/><br/>
  <span class="btn btn-lg btn-primary btn-block">登  录</span>
</form>

<script src="jquery.js" type="text/javascript"></script>
  <script src="jquery.cookie.js" type="text/javascript"></script>

判断checkbox是否被选中,若选中,则将存储cookie:

if ($("#remember_me").attr("checked")) {
    $.cookie("rmbUser", "true", { expires: 7 }); //存储一个带7天期限的cookie
    $.cookie("username", account, { expires: 7 });
    $.cookie("password", password, { expires: 7 });
}
else {
    $.cookie("rmbUser", "false", { expire: -1 });
    $.cookie("username", "", { expires: -1 });
    $.cookie("password", "", { expires: -1 });
}

  在每次刷新登录页面加载js时,取出cookie中的用户名和密码,若cookie不为空,用户名和密码输入框被cookie里面的内容填充,复选框设为勾上状态:

$().ready(function(){
    //获取cookie的值
    var username = $.cookie('username');
    var password = $.cookie('password');

    //将获取的值填充入输入框中
    $('#username').val(username);
    $('#password').val(password); 
    if(username != null && username != '' && password != null && password != ''){//选中保存秘密的复选框
       $("#remember_me").attr('checked',true);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值