本文详细讲解了如何使用原生JavaScript和jQuery两种方式实现登录页面的记住密码功能。通过操作Cookie存储用户名和密码,并在页面加载时自动填充表单,提升用户体验。提供了完整的HTML表单结构、JS逻辑代码及jQuery插件用法示例,适合前端开发者参考学习。
本文分享了利用JavaScript和jQuery技术实现登录页面记住密码功能的具体方法。
使用原生JavaScript实现记住密码功能
一、使用原生JavaScript实现记住密码功能
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>密 码:</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> </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>
JavaScript核心逻辑代码(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实现记住密码功能
二、使用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>
当复选框被选中时,执行保存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 });
}
在页面加载时读取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);
}
以上即为本文的全部内容,希望对各位的学习有所帮助,欢迎大家继续支持本站。