第一步:页面引入css:<link rel="stylesheet" type="text/css"" href="common/css/loginAjax.1.0.css"><!-- 引入封装的ajax样式 -->

css范例:

/**
* @description 页面登录弹出框样式
* @page 目前支持宇航所有页面
* @author maohuidong
* @date 2017-06-07
*/

/*登录框样式*/
.loginDiv {
position: fixed;
width: 5.8rem;
left: 50%;
top: 50%;
margin-top: -1.9rem;
margin-left: -2.9rem;
z-index: 101;
background-color: #048fbe;
border-radius: 10px;
text-align: center;
padding-top: 0.45rem;
font-size: 0.28rem;
display:none;
}

.loginDiv p{
color: #fff;
line-height: 0.45rem;
height: 0.9rem;
padding: 0 0.2rem;
}

.loginDiv p input{
height: 0.5rem;
padding: 0.1rem;
border-radius: 0.08rem;
background: #fff;
-webkit-box-shadow: 0 0 0px 1000px white inset;
}

.loginDiv p label{
display: inline-block;
width: 1.2rem;
text-align: right;
}

/*登录信息提示*/
.loginDiv .msg{
color: #fff;
line-height: 0.45rem;
height: 0.9rem;
padding: 0 0.2rem;
display:none;
}

/*登录按钮*/
.loginDiv .btn{
position: absolute;
width: 100%;
height: 0.88rem;
left: 0;
bottom: 0;
background-color: #fff;
border-radius: 0 0 10px 10px;
}

.login-dialog-mask{
top: 0%;
left: 0%;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
z-index: 9;
position: fixed;
display: block;
}

第二步:页面引入js:<script type="text/javascript" src="common/js/loginAjax.1.0.js"></script><!-- 引入封装的ajax -->

                                  <script type="text/javascript" src="common/js/jquery.js"></script><!-- 引入jquery库 -->

js 核心代码:

/***************************************************************************************************************
* @description jquery ajax请求的封装,V1.0版本用户app宇航页面session失效弹出登录框
* @page 使用页面:目前支持宇航所有页面
* @author maohuidong
* @date 2017-06-07
**************************************************************************************************************/
var login = {
//默认参数
opts:{
type:"post",
url:"",
data:"",
dataType:"json",
success:function(){},
error:function(){}
},
//弹出框模板
loginTemplete:"<div id='loginDiv' class='loginDiv'><p><label>用户名:</label><input type='text' id='name' name='name'/> </p> <p><label>密码:</label><input type='password' id='passwd' name='passwd' /> </p> <p id='msg' class= 'msg'></p> <p><input type='submit' class='btn' onclick='ytek.login();' value='登录' /></p> </div><div class='login-dialog-mask'></div>",
//宇航弹出框模板
starLoginTemplate: "<div class='dia-bluetipwrap-only'>"+
" <div class='dia-bluetip-only'>"+
" <div style='margin:0.04rem 0rem 0rem 0rem; color:#000; font-size:0.35rem;'>用户登录</div>"+
" <div class='shutdown'><img src='common/image/loginBox/shut-down.png'></div> "+
" <div class='g-wrap login-tc'>"+
" <p id='msg' class= 'msg'></p>"+
" <div class='member-form-tc'>"+
" <div class='box-sizing'>"+
" <div class='group-item'>"+
" <span class='bgicon tbu'></span>"+
" <input maxlength='11' type='text' id='name' class='name' placeholder='账号 / 手机号' "+
" onkeypress='javascript:if(event.keyCode < 48 || event.keyCode > 57) event.returnValue=false;' />"+
" <a href='javascript:void(0);' onclick='ytek.emptyLoginName();'><span class='user-icon user-empty' onclick='ytek.emptyLoginName()'></span></a>"+
" </div>"+
" <div class='group-item item'>"+
" <span class='bgicon tbp'></span>"+
" <input maxlength='16' onpaste='return false;' type='password' id='passwd' name='passwd' placeholder='密码' onkeypress='javascript:if(event.keyCode == 32) event.returnValue=false; '>"+
" <a href='javascript:void(0);' onclick='ytek.emptyLoginPwd();' ><span class='user-icon pwd-empty' onclick='ytek.emptyLoginPwd()'></span></a><span class='user-icon eye close' onclick='ytek.switchPwdDisplay()'></span>"+
" </div>"+
" <input type='submit' value='登录' class='lblue-btn' onclick='ytek.login();'> "+
" </div>"+
" </div>"+
" </div> "+
" </div>"+
" </div><div class='login-dialog-mask'></div>",
//ajax请求封装,session失效时,弹出登录框
ajax:function(params){
var _this = this;
var params = $.extend({},this.opts,params);
$.ajax({
type:params.type,
url:params.url,
data:params.data,
dataType:params.dataType,
success:function(data){
//用户验证失败
if(typeof data == "string" && data.indexOf("loginError") > 0 ){
data = JSON.parse(data);
}
//loginError = -1 时,代表服务端ajax请求验证失败
if(data != null && data.loginError == "-1"){
var html = _this.starLoginTemplate;
if($("body .dia-bluetipwrap-only").size() > 0){
$("body .dia-bluetipwrap-only").remove();
}
$("body").append(html);
//绑定事件:点击非弹框区域,弹框消失
_this.loginRemove();
//绑定事件:取消登录框
_this.loginClose();
$('.login-dialog-mask').show();
$(".dia-bluetipwrap-only").show(300);
if(params.success){
params.success(null);
}
return;
}
//用户验证通过,成功返回
if(params.success){
params.success(data);
}
},
error:function(){
if(params.error){
params.error();
}
}
});
},
//当前页面弹出的登录框登录
login:function(){
var userName = $(".dia-bluetipwrap-only #name").val().trim();
var passwd = $(".dia-bluetipwrap-only #passwd").val().trim();
if(userName == "" || passwd == ""){
$(".dia-bluetipwrap-only #msg").text("用户名或密码不能为空");
$(".dia-bluetipwrap-only #msg").show(100);
return;
}
//登录验证
this.ajax({
type:"post",
url:"userLoginIos_timeoutLogin.action",
data:{"userName":userName,"passwd":passwd},
dataType:"json",
success:function(data){
if(data != null && typeof data.loginError != "undefined" && data.loginError != null){
if(data.loginError == "-2"){
$(".dia-bluetipwrap-only #msg").text("用户名或密码不能为空");
}
if(data.loginError == "-3"){
$(".dia-bluetipwrap-only #msg").text("用户名或者密码错误");
}
if(data.loginError == "-4"){
$(".dia-bluetipwrap-only #msg").text("账号已失效");
}
$(".dia-bluetipwrap-only #msg").show(100);
return ;
}
$(".dia-bluetipwrap-only #msg").text("登录成功,2秒后自动消失");
$(".dia-bluetipwrap-only #msg").css({"color":"#048fbe"});
$(".dia-bluetipwrap-only #msg").show(100);
setTimeout(function(){
$(".dia-bluetipwrap-only").hide(300,function(){
$('.login-dialog-mask').remove();
$(".dia-bluetipwrap-only").remove();
});
},2500);
},
error:function(){
$(".dia-bluetipwrap-only #msg").text("登录失败");
}

});
},
//点击遮罩层,移除登录框
loginRemove:function(){
$(document).on("click",function(e){
if($(e.target).closest('.dia-bluetipwrap-only').length == 0){
if($(".dia-bluetipwrap-only").css("display") == "block"){
$(".dia-bluetipwrap-only").hide(300,function(){
$('.login-dialog-mask').remove();
$(".dia-bluetipwrap-only").remove();
});
}
}
});
},
//关闭登录框
loginClose:function(){
$(".dia-bluetipwrap-only .shutdown").on("click",function(){
$(".dia-bluetipwrap-only").hide(300,function(){
$('.login-dialog-mask').remove();
$(".dia-bluetipwrap-only").remove();
});
});
},
//清空登录名
emptyLoginName:function(){
$(".dia-bluetipwrap-only #name").val("");
$(".dia-bluetipwrap-only #name")[0].focus();
},
//清空密码
emptyLoginPwd:function(){
$(".dia-bluetipwrap-only #passwd").val("");
$(".dia-bluetipwrap-only #passwd")[0].focus();
},
//是否明文显示密码切换
switchPwdDisplay:function(){
if($(".dia-bluetipwrap-only .eye.close").hasClass("close")){
$(".dia-bluetipwrap-only .eye.close").removeClass("close");
$(".dia-bluetipwrap-only #passwd").attr("type","text");
}else{
$(".dia-bluetipwrap-only .eye").addClass("close");
$(".dia-bluetipwrap-only #passwd").attr("type","password");
}
}
};

第三步:测试

login.ajax({
type:"post",
url:"loggingIos_findUserLoggingYears.action",
data:{"starId":_this.starId},
dataType:"json",
success:function(data){
if(data !== null && data.length > 0){
$("#year").empty();
$("#year").append("<option value=''>请选择</option>");
data.forEach(function(value,i){
$("#year").append("<option value='"+value+"'>"+value+"</option>");
});
}
},
error:function(){

}
});

js登录弹出框插件的更多相关文章

  1. 弹出框插件layer使用

    layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 插件官方地址:http://layer.layui.co ...

  2. 弹出框插件——dialog

    基于jquery和dot.js弹出框插件,兼容IE6+等其他浏览器. 思想:弹出框元素插入body节点中,并在页面垂直居中显示(fixed定位),触发确定和关闭事件绑定. 注意ie6包含两个问题:一. ...

  3. 用JQuery写出登录弹出框

    类似百度的登录弹出框,可用jquery的fadeIn(),hide(),show(),slideDown()等动画函数实现,一下为html5 代码: <!DOCTYPE html> < ...

  4. js自定义弹出框

    js自定义弹出框: 代码如下 <html> <head><title>自定义弹出对话框</title> <style type ="te ...

  5. html+css源码之实现登录弹出框遮罩层效果

    在web开发中,很多网站都做了一些特别炫丽的效果,比如用户登录弹框遮罩层效果,本文章向大家介绍css如何实现登录弹出框遮罩层效果,需要的朋友可以参考一下本文章的源代码. html+css实现登录弹出框 ...

  6. JS弹出框插件zDialog再次封装

    zDialog插件网址:http://www.jq22.com/jquery-info2426 再次封装zDialog的代码: (function ($) { $.extend({ iDialog: ...

  7. jQuery+css3弹出框插件

    先来看DEMO:https://codepen.io/jonechen/pen/regjGG 插件的开发很简单,运用了CSS3的动画效果,并且弹出框的内容可以自定义.插件的默认配置参数有三个: var ...

  8. js 常见弹出框学习

    模拟系统的弹出框 系统自带的弹出框 总结 链接  http://blog.csdn.net/anhuidelinger/article/details/17024491 参考这个网站学习模态框的动态弹 ...

  9. 【原创】贡献一个JS的弹出框代码...

    一.前言 最近在做一个项目,自己感觉系统自带的alert()方法的弹出框实在是不堪入目,所以在网上找了一些资料,然后自己加工了一下,做出了自己的一个js弹出框,在这里贡献出来,希望对你有帮助. 二.开 ...

随机推荐

  1. php 中的引用

    php 有类似 C 中的指针 &. 但在 php 中叫 引用. 虽然和 传地址很像,但是差别很大.(估计底层实现应该差不多,只是猜想,有机会再研究) 这里有一个关于 php 的对象的赋值其实就 ...

  2. Oracle 补丁体系 及 opatch 工具 介绍

    一. CPU(Critical Patch Update) 一个CPU内包含了对多个安全漏洞的修复,并且也包括相应必需的非安全漏洞的补丁.CPU是累积型的,只要安装最新发布的CPU即可,其中包括之前发 ...

  3. 转-使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器

    使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器 2016-09-23    分类:.NET开发.编程开发.首页精华0人评论 分享到:更多3 本文由码农网 – 小峰原创翻译,转载 ...

  4. MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件01-单文件上传

    前段时间做了几个关于图片.文件上传的Demo,使用客户端Query-File-Upload插件和服务端Badkload组件实现多文件异步上传,比如"MVC文件上传04-使用客户端jQuery ...

  5. mssql存储过程 事务

    USE [EtownDB]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate PROCEDURE InsWxqunfaChildtb @logi ...

  6. bzxoj1090 字符串折叠

    Description 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S  S 2. X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S)  SSSS…S(X个S). ...

  7. Spark1.6 Idea下远程调试

    使用的开发工具:scala2.10.4.Idea16.JDK8 1.导入依赖的包和源码 在下载Spark中到的导入spark的相关依赖了包和其源码.zip,相关源码的下载地址:https://gith ...

  8. Java学习——Eclipse下载,java配置,新建,输入输出

    Eclipse下载,java配置:  基本的软件是JDK,它可以编译.运行Java程序,下载地址是:https://www.oracle.com/technetwork/java/javase/dow ...

  9. 学习笔记之ASP.NET MVC & MVVM & The Repository Pattern

    ASP.NET MVC | The ASP.NET Site https://www.asp.net/mvc ASP.NET MVC gives you a powerful, patterns-ba ...

  10. 针对IE6浏览器下,zoom:1的问题

    一.css代码如下: .message .con .word {font-size:14px;color:#333333; border-radius:3px; padding:10px;border ...