登录界面与注册界面一样,作用不一样罢了,先来看一下整体页面
该界面的头部与尾部代码与注册界面的一致
HTML:
<div class="login">
<div class="easyui-panel" title="登 录" style="width:100%;max-width:400px;padding:30px 60px;">
<div style="margin-bottom:20px">
<input id="username" class="easyui-textbox" style="width:100%;height:40px;padding:12px" onblur="checkName()" data-options="prompt:'请输入用户名',iconCls:'icon-man',iconWidth:38">
</div>
<div style="margin-bottom:20px">
<input id="password" class="easyui-textbox" type="password" style="width:100%;height:40px;padding:12px" data-options="prompt:'请输入密码',iconCls:'icon-lock',iconWidth:38">
</div>
<div style="margin-bottom:20px">
<input type="checkbox" checked="checked" onclick="check()" id="checkName">
<span>记住用户名</span>
<span style="padding-left: 50px"></span>
<input type="checkbox" onclick="checkEvent(this)" id="checkPaw">
<span>记住密码</span>
</div>
<div>
<a class="easyui-linkbutton" onclick="login()" data-options="iconCls:'icon-ok'"style="float: left">
<span style="font-size:14px;">登录</span>
</a>
<a onclick="reset()" class="easyui-linkbutton" iconCls="icon-clear" style="float: right">重置</a>
</div>
<div style="margin-top:20px;padding-top: 20px">
<span style="padding-left: 150px"/>
<span>未注册?点击<a href="user/register.html">注册</a></span>
</div>
</div>
</div>
在登录之前,当然也需要对用户操作进行一下判断
1.验证用户名是否存在。此处可与注册时验证用户名调用同一个后台方法
但需要注意的是:两者判断的目的不一样,注册时是用户名存在则不能进行操作需要重新输入,而登录时则是用户名不存在是则不能进行操作,需要重新输入,因此需要对应后台返回的text数据进行对应的所需要的判断弹出框
在前台JavaScript中:
此处需要注意的是:验证用户名是否存在,是在光标离开用户名输入框的时候执行,由于onblur事件在jQuery中无法产生效果,需要在原生的JavaScript中才会有效果,由以上代码可以看出,页面加载完成后就会自动执行以上代码。
在后台:
Sql语句:
当验证完毕以后,则可以进行登录操作了,在前台
/**
* 登录
*/
function login() {
//获取去字符串左右空格的用户名
var username = $("#username").textbox('getValue').trim();
//获取去字符串左右空格的密码
var password = $("#password").textbox('getValue').trim();
//用于判断用户名与密码是否为空
if(username==="" || password===""){
showMessageCenter("用户名或密码不能为空",200);
return;
}
//记住用户名与密码
rememberUserAndPwd(username, password);
//将用户名与密码保存为json格式的数据
var jsonObj = {username: username, password: password};
//发送一个ajax请求,返回一个text数据结果
var data = getTextData("login.hebe", json2str(jsonObj));
if (data == "success") {
// $.messager.alert('温馨提示:', '登录成功', 'success');
// window.location.href = "project/project_list.html";
window.location.href = "index1.html";
} else {
$.messager.alert('温馨提示:', '登录失败', 'error');
$("#username").textbox("clear");
$("#password").textbox("clear");
}
}
前台执行了登录操作,则会发送hebe请求到后台,对输入的用户名与密码进行判断是否正确,正确则返回成功,不正确则返回错,则前台会根据后台返回值进行相应操作
在登录的过程中还有一个小的功能的实现:那就是用户名与密码的记住,此功能不是通过session,而是通过cookie记住的。该功能只需要在前台JavaScript中完成
首先,在执行登录操作的时候,就需要有方法记住用户名与密码
当然这个记住并不是一定会记住的,虽然登录操作确实会调用这个方法,但在该方法中也做了判断,即用户选择了记住用户名与密码,才会记住,不然则只会记住一个空字符串而已,以下代码可以看出:
Cookie并没有这么简单,此处调用了封装在一个js中设置cookie的公用方法
无论是用户是否选择了记住,当登录页面再次加载的时候,都会调用加载cookie中的用户名与密码的方法
此时加载用户名与密码,当选择记住的时候,则会加载上一次登录的用户名与密码,若没有选择记住,则会加载两个空字符串在输入框中,也就相当于没有加载
此处还有一个小功能,就是用键盘的回车键来调用登录的方法,也就不需要鼠标点击登录才会登录了,键盘回车键的keycode值为13,此时会调用login方法。