jQuery+AJAX实现遮罩层登录验证界面(附源码)


Posted in Javascript onSeptember 13, 2020

JQuery遮罩层登录界面效果的实现,AJAX实现登录验证,文章尾有完整示例源码下载,欢迎大家学习研究。

操作系统:Windwos7 Ultimate

开发工具:Visual Studio 2010

数据库:Sql Server 2005

测试浏览器:IE8、FF3.6.8、Google Chrome (IE8中弹出登录层后会出现竖拉条,其他两种没有出现,那个竖拉条可以在JS中通过修改数值让其不出现,但是下面会出现白边,越来越觉得IE有点那个了......)

1、预览

 1)登录前

 jQuery+AJAX实现遮罩层登录验证界面(附源码)

 2)点击登录显示登录窗口(层),同时用一个灰色透明层遮罩主窗体内容,点击【登录】,隐藏【登录】,显示loading图,登录失败,显示【登录】,隐藏登录图,同时显示提示信息

 jQuery+AJAX实现遮罩层登录验证界面(附源码)

3)登录成功后,去掉去掉遮罩层和登录层,显示“xxx,您好! ”

 jQuery+AJAX实现遮罩层登录验证界面(附源码)

2、实现

使用VS2010创建一个Web Site,此功能是在母版页Site.master中实现的。VS2010会自动添加JQuery的js文件到Scripts文件夹,并创建一个母版页和基于此母版页的Default.aspx和About.aspx两个窗体。

1)登录层界面设计,看Site.master中的代码

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
 <title>FlyNoteBook</title>
 <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
 <script type="text/javascript" src="Scripts/common.js"></script>
 <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
 <script type="text/javascript" src="Scripts/login.js"></script>
 <asp:ContentPlaceHolder ID="HeadContent" runat="server">
 </asp:ContentPlaceHolder>
</head>
<body>
 <form runat="server">
 <div class="page">
 <div class="header">
 <div class="title">
   <img src="Images/Pictures/logo3.png" alt="FlyNoteBook Logo" />
  FlyNoteBook
 </div>
 <div class="loginDisplay">
 <span id="popup" runat="server">登录</span>
 <span id="loginSuccess" runat="server"></span>
 </div>
 <div class="clear hideSkiplink">
 <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
 IncludeStyleBlock="false" Orientation="Horizontal">
 <Items>
 <asp:MenuItem NavigateUrl="~/Default.aspx" Text="首页" />
 <asp:MenuItem NavigateUrl="~/About.aspx" Text="关于" />
 </Items>
 </asp:Menu>
 </div>
 </div>
 <!--登录窗口:Begin-->
 <div id="divLoginWindow">
 <table style="width: 100%;" border="0" cellpadding="2" cellspacing="0">
 <tr style="background-color: #e0f3d9; border-bottom: #bfe5b3 solid 2px">
 <td style="height: 38px; width: 100px;">
  用户登录
 </td>
 <td>
 <img src="Images/Button/close.gif" id="closeBtn" align="absmiddle" alt="关闭" title="关闭" />
 </td>
 </tr>
 <tr>
 <td colspan="2" style="height: 5px;">
 </td>
 </tr>
 <tr>
 <td align="right">
  用户名:
 </td>
 <td>
  <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
 </td>
 </tr>
 <tr>
 <td align="right">
  密   码:
 </td>
 <td>
  <asp:TextBox ID="txtPassword" TextMode="Password" runat="server"></asp:TextBox>
 </td>
 </tr>
 <tr>
 <td align="right">
  验证码:
 </td>
 <td>
  <asp:TextBox ID="txtCode" Style="width: 88px;" runat="server"></asp:TextBox>
 <img src="Code.aspx" id="imgRndCode" style="vertical-align: middle;" onclick="ChangeCode(this);"
 alt="验证码" title="看不清,点击图片更换图片" />
 </td>
 </tr>
 <tr>
 <td colspan="2" align="center">
 <a onclick="CheckLogin()" id="alogin">登 录</a>
 <img id="loading" src="Images/Loading/loading04.gif" alt="正在登录" title="正在登录..." />
 <br />
 <span id="showMes"></span>
 </td>
 </tr>
 </table>
 </div>
 <!--登录窗口:End-->
 <div class="main">
 <asp:ContentPlaceHolder ID="MainContent" runat="server" />
 </div>
 <div class="clear">
 </div>
 </div>
 <div class="footer">
 <a href="http://www.cnblogs.com/Ferry/">By Ferry</a>
 </div>
 </form>
</body>
</html>

2)实现遮罩层和弹出登录界面的层的js文件Scripts/common.js的代码,注意,里面硬写了一些母版页Site.master中的元素的ID

$(function () {
 var screenwidth, screenheight, mytop, getPosLeft, getPosTop
 screenwidth = $(window).width();
 screenheight = $(window).height();
 //获取滚动条距顶部的偏移
 mytop = $(document).scrollTop();
 //计算弹出层的left
 getPosLeft = screenwidth / 2 - 200;
 //计算弹出层的top
 getPosTop = screenheight / 2 - 150;
 //css定位弹出层
 $("#divLoginWindow").css({ "left": getPosLeft, "top": getPosTop });
 //当浏览器窗口大小改变时
 $(window).resize(function () {
 screenwidth = $(window).width();
 screenheight = $(window).height();
 mytop = $(document).scrollTop();
 getPosLeft = screenwidth / 2 - 200;
 getPosTop = screenheight / 2 - 150;
 $("#divLoginWindow").css({ "left": getPosLeft, "top": getPosTop + mytop });
 });
 //当拉动滚动条时,弹出层跟着移动
 $(window).scroll(function () {
 screenwidth = $(window).width();
 screenheight = $(window).height();
 mytop = $(document).scrollTop();
 getPosLeft = screenwidth / 2 - 200;
 getPosTop = screenheight / 2 - 150;
 $("#divLoginWindow").css({ "left": getPosLeft, "top": getPosTop + mytop });
 });
 //点击链接弹出登录窗口
 $("#popup").click(function () {
 $("#divLoginWindow").fadeIn("slow"); //toggle("slow"); 
 $("#txtUserName").focus();
 //获取页面文档的高度
 var docheight = $(document).height();
 //追加一个层,使背景变灰
 $("body").append("<div id='greybackground'></div>");
 $("#greybackground").css({ "opacity": "0.5", "height": docheight });
 return false;
 });
 //点击关闭按钮
 $("#closeBtn").click(function () {
 $("#divLoginWindow").fadeOut("slow"); ////hide();
 //删除变灰的层
 $("#greybackground").remove();
 return false;
 });
});

//更换验证码图片
function ChangeCode(obj) {
 obj.src = "Code.aspx?" + Math.random();
}

3)点击【登录】实现AJAX登录验证功能的js文件Scripts/login.js的代码

var count = 0;
$(document).ready(function () {
 $("#loading").hide()
});

function CheckLogin() {
 $("#alogin").hide();
 $("#loading").show();
 var txtCode = $("#txtCode");
 var txtName = $("#txtUserName");
 var txtPwd = $("#txtPassword");
 $.ajax({
 url: "CheckLogin.aspx?Code=" + txtCode.val() + "&Name=" + txtName.val() + "&Pwd=" + txtPwd.val(),
 type: "post",
 datatype: "text",
 success: function (returnValue) {
 if (returnValue != "false") {
 $("#popup").hide();
 $("#showMes").hide();
 $("#loginSuccess").html(returnValue + ',您好!');
 $("#divLoginWindow").remove();
 $("#greybackground").remove();
 $("#showMes").hide();
 }
 else {
 count = count + 1;
 $("#loading").hide();
 $("#alogin").show();
 $("#showMes").show();
 $("#showMes").html("<font color=red>登录失败,请检查后重试!(" + count + "次)</font>");
 }
 }
 })
}

4)请求的CheckLogin.aspx的后台代码,前台清除剩Page命令一行

using System;
using System.Data;

public partial class CheckLogin : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
 try
 {
 String strCode = Request.QueryString["Code"];
 String strName = Request.QueryString["Name"];
 String strPassword = Request.QueryString["Pwd"];

 if (strCode != Session["Code"].ToString())
 {
 Response.Write("false");
 }
 else
 {
 DAO.SqlHelper helper = new DAO.SqlHelper();
 DataTable dt = helper.FillDataTable(String.Format("Select UserName,TrueName From Clients Where UserName='{0}' And Password='{1}'",
 strName,
 strPassword
 ));
 if (dt != null && dt.Rows.Count > 0)
 {
 Session["TrueName"] = dt.Rows[0]["TrueName"].ToString();
 Response.Write(dt.Rows[0]["TrueName"].ToString());
 }
 else
 {
 Response.Write("false");
 }
 }
 }
 catch
 {
 Response.Write("false");
 }
 }
}

源码下载:jQuery+AJAX实现遮罩层登录验证界面

以上就是jQuery实现遮罩层登录界面,AJAX实现登录验证的全部内容,希望对大家的学习有所帮助

Javascript 相关文章推荐
javascript string字符串优化问题
Jul 31 Javascript
JavaScript获取FCK编辑器信息的具体方法
Jul 12 Javascript
js清除input中type等于file的值域(示例代码)
Dec 24 Javascript
通过url查找a元素应用案例
Apr 29 Javascript
JQuery显示隐藏页面元素的方法总结
Apr 16 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
jQuery属性选择器用法示例
Sep 09 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 Javascript
Vue3.0数据响应式原理详解
Oct 09 Javascript
node crawler如何添加promise支持
Feb 01 Javascript
详解ES6中class的实现原理
Oct 03 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 #Javascript
js获取表格的行数和列数的方法
Oct 23 #Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
Oct 23 #Javascript
js中对函数设置默认参数值的3种方法
Oct 23 #Javascript
js窗口关闭提示信息(兼容IE和firefox)
Oct 23 #Javascript
javascript跨域的方法汇总
Oct 23 #Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
Oct 23 #Javascript
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
在家更换处方镜片:Lensabl
2019/05/01 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
客服部工作职责范本
2014/02/14 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
预备党员表决心书
2014/03/11 职场文书
2014年人事部工作总结
2014/12/03 职场文书
太行山上观后感
2015/06/05 职场文书
法制主题班会教案
2015/08/13 职场文书
四则混合运算教学反思
2016/02/23 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL