项目中基本上登录是必不可少的一步,对此,在登录时选择记住密码这一功能也是不错的选择。
今天测试找我说项目中的记住密码功能没用。我一看前同事就没写这一块的代码。搞了个复选框丢在哪里就没管。
先引入需要的js文件。
<script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
<script src="../static/js/jquery.cookie.js" th:src="@{/js/jquery.cookie.js}"></script>
jquery.cookie.js这个可以去网上下载。然后引用文件中,必不可少的一个引入文件,另外jquery这个文件也很重要,它俩必须搭配一起使用。jquery可以引用你们项目中的有都行。
这个jQuery.cookie.js不太好下载,这里有一个地址,可以在页面上打开然后另存为js文件就可以了。
jquery.cookie.js
或者访问这个地址:
http://www.h-ui.net/lib/jQuery.cookie.js.shtml
代码:
HTML
<form id="signupForm" autocomplete="off">
<input type="text" name="username" id="username" class="form-control uname" placeholder="用户名" />
<input type="password" name="password" id="password" class="form-control pword" placeholder="密码" />
<div class="row m-t" th:if="${captchaEnabled==true}">
<div class="col-xs-6">
<input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" />
</div>
<div class="col-xs-6">
<a href="javascript:void(0);" title="点击更换验证码">
<img th:src="@{captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>
</a>
</div>
</div>
<div class="checkbox-custom" th:classappend="${captchaEnabled==false} ? 'm-t'">
<input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住我</label>
</div>
<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍后...">登录</button>
<!--<div>-->
<!--<button type="button" οnclick="check()" class="btn btn-outline btn-primary" style="line-height: 0.8;float: right;">软件激活</button>-->
<!--</div>-->
</form>
js:
//一定要在其加载页面的时候加载,不然就无法读取cookie,也就是无法把值传给文本框去了。
$(function(){
//页面加载完成之后执行,查询cookie 是否记住账号密码
var username = $.cookie("username"); //获取cookie中的用户名
var password = $.cookie("password"); //获取cookie中的登陆密码
if(password != ""){//密码存在的话把“记住用户名和密码”复选框勾选住
$("[name='rememberme']").attr("checked","true");
}
if(username!=""){//用户名存在的话把用户名填充到用户名文本框
$("#username").val(username);
}else{
$("#username").val("");
}
if(password!=""){//密码存在的话把密码填充到密码文本框
$("#password").val(password);
}else{
$("#password").val("");
}
});
$.validator.setDefaults({
submitHandler: function() {
login();
}
});
function login() {
$.modal.loading($("#btnSubmit").data("loading"));
var username = $.common.trim($("input[name='username']").val());
var password = $.common.trim($("input[name='password']").val());
var validateCode = $("input[name='validateCode']").val();
var rememberMe = $("input[name='rememberme']").is(':checked');
$.ajax({
type: "post",
url: ctx + "login",
data: {
"username": username,
"password": password,
"validateCode": validateCode,
"rememberMe": rememberMe
},
success: function(r) {
if (r.code == 0) {
if(rememberMe){ //账号密码没问题,登录成功之后 存储账号密码到cookie,设置15天之后过期
$.cookie('username', username, { expires: 15 });
$.cookie('password', password, { expires: 15 });
}else{ //如果没有选中就清除cookie
$.cookie('username', '');
$.cookie('password', '');
}
location.href = ctx + 'index';
} else {
$.modal.closeLoading();
$('.imgcode').click();
$(".code").val("");
$.modal.msg(r.msg);
}
}
});
}
最终效果: