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 相关文章推荐
jquery tab插件精简版分享
Sep 10 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
Javascript冒泡排序算法详解
Dec 03 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
js评分组件使用详解
Jun 06 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
vue.js计算属性computed用法实例分析
Jul 06 Javascript
js对象简介与基本用法示例
Mar 13 Javascript
vue中touch和click共存的解决方式
Jul 28 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
屏蔽浏览器缓存另类方法
2006/10/09 PHP
phpMyAdmin 安装及问题总结
2009/05/28 PHP
php 静态变量的初始化
2009/11/15 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
JSON 编辑器实现代码
2009/12/06 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python入门篇之条件、循环
2014/10/17 Python
Python 多进程和数据传递的理解
2017/10/09 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
什么是唯一索引
2015/07/05 面试题
家长通知书教师评语
2014/04/17 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
红色电影观后感
2015/06/18 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python
Go语言应该什么情况使用指针
2021/07/25 Golang