纯js实现记住密码

老大说,cookie记住密码完全是网页端的事情,和后台无关!这边纯js代码,完全不涉及后台,原因是密码放在客户端,不在服务端!

function setCookie ( name, value, expdays )
{
    var expdate = new Date();
    //设置Cookie过期日期
    expdate.setDate(expdate.getDate() + expdays) ;
    //添加Cookie
    document.cookie = name + "=" + escape(value) + ";expires=" + expdate.toUTCString();
}

function getCookie ( name )
{
    //获取name在Cookie中起止位置
    var start = document.cookie.indexOf(name+"=") ;

    if ( start != -1 )
    {
        start = start + name.length + 1 ;
        //获取value的终止位置
        var end = document.cookie.indexOf(";", start) ;
        if ( end == -1 )
            end = document.cookie.length ;
        //截获cookie的value值,并返回
        return unescape(document.cookie.substring(start,end)) ;
    }
    return "" ;
}


function delCookie ( name )
{
    setCookie ( name, "", -1 ) ;
}

上面直接用,不用改。。。。。。。。。。。。。。。

<!-- 登陆表单 -->
<form method="post" autocomplete="off" onsubmit="return check()">
  <!-- 用户名输入 -->
  <input type="text"  name="username" id="username" required="required" >
  <!-- 密码输入,禁用自动填充 -->
  <input type="password" autocomplete="new-password" name="password" id="password" required="required">
  <!-- 是否记住密码复选框 -->
  <input type="checkbox" id="isRmbPwd" name="isRmbPwd" checked="checked">记住密码
  <!-- 提交按钮 -->
  <input type="submit" value="提交">
</form>

function check ()
{
    //获取表单输入:用户名,密码,是否保存密码
    var username = document.getElementById("username").value.trim() ;
    var password = document.getElementById("password").value.trim() ;
    var isRmbPwd = document.getElementById("isRmbPwd").checked ;

    //判断用户名,密码是否为空(全空格也算空)
    if ( username.length != 0 && password.length != 0 )
    {
        //若复选框勾选,则添加Cookie,记录密码
        if ( isRmbPwd == true )
        {    
            setCookie ( "This is username", username, 7 ) ;
            setCookie ( username, password, 7 ) ;
        }
        //否则清除Cookie
        else
        {
            delCookie ( "This is username" ) ;
            delCookie ( username ) ;
        }
        return true ;
    }
    //非法输入提示
    else
    {
        alert('请输入必填字段!!!')
        return false ;
    }    
}

//将function函数赋值给onload对象
window.onload = function ()
{
    //从Cookie获取到用户名
    var username = getCookie("This is username") ;
    //如果用户名为空,则给表单元素赋空值
    if ( username == "" )
    {
        document.getElementById("username").value="" ;
        document.getElementById("password").value="" ;
        document.getElementById("isRmbPwd").checked=false ;
    }
    //获取对应的密码,并把用户名,密码赋值给表单
    else
    {
        var password = getCookie(username) ;

        document.getElementById("username").value = username ;
        document.getElementById("password").value = password ;
        document.getElementById("isRmbPwd").checked = true ;
    }
}
上面的内容直接复制到jsp页面就可以使用,只需要做最简单的字段的修改,username和password对应即可!

作者:浅晨夕
链接:http://www.jianshu.com/p/b5a9b8d74d38
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/SicongFu/article/details/78133085