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 相关文章推荐
prototype.js的Ajax对象
Sep 23 Javascript
JS获取scrollHeight问题想到的标准问题
May 27 Javascript
最新28个很棒的jQuery 教程
May 28 Javascript
IE8下String的Trim()方法失效的解决方法
Nov 08 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
Jul 04 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
Dec 21 Javascript
vue-infinite-loading2.0 中文文档详解
Apr 08 Javascript
浅谈Vue.js组件(二)
Apr 09 Javascript
关于element的表单组件整理笔记
Feb 05 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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
Python subprocess模块学习总结
2014/03/13 Python
python进行两个表格对比的方法
2018/06/27 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
python中Lambda表达式详解
2019/11/20 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
财务会计专业求职信范文
2013/12/31 职场文书
音乐教育感言
2014/03/05 职场文书
合作协议书格式
2014/08/19 职场文书
校车安全责任书
2014/08/25 职场文书
导游词格式
2015/02/13 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
入队仪式主持词
2015/07/04 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
MySQL中order by的执行过程
2022/06/05 MySQL