第一步:页面引入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. hadoop大数据处理平台与案例

    大数据可以说是从搜索引擎诞生之处就有了,我们熟悉的搜索引擎,如百度搜索引擎.360搜索引擎等可以说是大数据技处理技术的最早的也是比较基础的一种应用.大概在2015年大数据都还不是非常火爆,2015年可 ...

  2. 【linux】Linux内存的free的真实含义

  3. C++ 常用函数方法

    /* * 拆分字符串 * 参数: * strData 字符串 * split 分隔符 * 返回: * 返回动态数组std::vector<std::string> ,记得要delete 内 ...

  4. 实际用户ID和有效用户ID (一) *****

    在Unix进程中涉及多个用户ID和用户组ID,包括如下: 1.实际用户ID和实际用户组ID:标识我是谁.也就是登录用户的uid和gid,比如我的Linux以simon登录,在Linux运行的所有的命令 ...

  5. 【ActiveMQ入门-4】ActiveMQ学习-异步接收

    总体说明: 1. 一个生产者/发布者:可以向多个目的地发送消息: 2. 每个目的地(destination)可以有多个订阅者或消费者: 如下图所示: 程序结构: 1. Publisher.java   ...

  6. Celery 异步定时周期任务

    1/什么是Celery Celery 是基于Python实现的模块,用于执行异步定时周期任务的 其结构的组成是由 1.用户任务app 2.管道 broker 用于存储任务 官方推荐 redis rab ...

  7. adb命令查看app的日志

    前言 在做app测试的时候,经常会遇到异常,此时如果开发没有异常保存,那么测试就得通过adb命令来查看日志信息.基于Windows平台的操作: logcat输出日志 一.把日志输出到手机指定目录 其命 ...

  8. 邮件服务器fixpost服务(1)

    发邮件所用的协议,SMTP协议,端口TCP25 收邮件所用的协议,pop3.imap协议 邮件客户端(MUA):foxmail.闪电邮.邮件大师.outlook 搭建邮件服务器所用到的软件(MTA邮件 ...

  9. jquery二维码生成插件_二维码生成器

    jquery二维码生成插件_二维码生成器 下载地址:jquery生成二维码.rar

  10. js之ActiveX控件使用说明 new ActiveXObject()

    什么是 ActiveX 控件? ActiveX 控件广泛用于 Internet.它们可以通过提供视频.动画内容等来增加浏览的乐趣.不过,这些程序可能出问题或者向您提供不需要的内容.在某些情况下,这些程 ...