Bootstrap+jfinal退出系统弹出确认框的实现方法


Posted in Javascript onMay 30, 2016

本文为大家分享了jfinal与bootstrap的登出操作,旨在介绍如何通过a标签弹出登出确认框,然后发送退出请求到jfinal,然后再刷新页面的做法。主要难点在于有以下两点:

1.如果通过a标签的内容弹出登出确认框;

2.如何通过a标签刷新对应弹出的页面。

一、前端技术

1.构建a标签

<a href="${ctx}/mem/logout" target="ajaxTodo" callback="ajaxDone" atitle="你确定要退出吗?" id="user_login_out" style="padding: 0 6px;">退出</a>

注意:
1. target=”ajaxTodo”,指定a标签要通过ajax发起请求。
2. callback=”ajaxDone”,指定a标签回调函数
3. atitle=”你确定要退出吗?”,指定确认信息

2.初始化a标签ajax事件

function initUI(_box) {
 var $p = $(_box || document);

 // dwz.ajax.js
 if ($.fn.ajaxTodo) {
 $("a[target=ajaxTodo]", $p).ajaxTodo();
 }
}

注意:
1. 页面加载完成后执行initUI方法,使target为ajaxTodo的a标签具有指定的ajaxTodo方法。

3.a标签的ajax请求

function ajaxTodo(url, callback) {
 var $callback = callback;
 if (!$.isFunction($callback)) {
 $callback = eval('(' + callback + ')');
 }
 var forwardUrl = window.location.href;
 if (url.indexOf("?") != -1) {
 url += "&forwardUrl=" + forwardUrl;
 } else {
 url += "?forwardUrl=" + forwardUrl;
 }
 $.ajax({
 type : 'POST',
 url : url,
 dataType : "json",
 cache : false,
 success : $callback,
 error : YUNM.ajaxError
 });
}

注意:
1. forwardUrl 记录登出的页面

4.为jquery对象增加ajaxTodo方法

$.fn.extend({
 ajaxTodo : function() {
 return this.each(function() {
 var $this = $(this);
 $this.click(function(event) {
 var url = unescape($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first"));
 YUNM.debug(url);
 if (!url.isFinishedTm()) {
  $.showErr($this.attr("warn"));
  return false;
 }
 var title = $this.attr("atitle");
 if (title) {
  $.showConfirm(title, function() {
  ajaxTodo(url, $this.attr("callback"));
  });
 } else {
  ajaxTodo(url, $this.attr("callback"));
 }
 event.preventDefault();
 });
 });
 },
});

5.回调函数

function ajaxDone(json) {
 YUNM.ajaxDone(json);
 if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok || json[YUNM.keys.statusCode] == YUNM.statusCode.info) {
 // 如果指定了后调转页面,进行调转
 if (json.forwardUrl) {
 location.href = json.forwardUrl;
 }
 }
}

6.弹出weebox确认框

$.showConfirm = function(str, funcok, funcclose) {
 var okfunc = function() {
 $.weeboxs.close("yunm_confirm_box");
 funcok.call();
 };
 $.weeboxs.open(str, {
 boxid : 'yunm_confirm_box',
 contentType : 'text',
 showButton : true,
 showCancel : true,
 showOk : true,
 title : '确认',
 width : 280,
 type : 'wee',
 onopen : function() {
 init_ui_button();
 },
 onclose : funcclose,
 onok : okfunc
 });
};
function init_ui_button() {
 $("button.ui-button[init!='init']").each(function(i, o) {
 $(o).attr("init", "init"); // 为了防止重复初始化
 $(o).ui_button();
 });
}

二、jfinal技术

public void logout() {
 if (getSession().getAttribute("username") != null) {
 // 清除session
 getSession().removeAttribute("username");
 }
 ajaxDoneSuccess("登出成功!");
 renderJson();
}

增加logout方法。

效果:

Bootstrap+jfinal退出系统弹出确认框的实现方法

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望大家动手实现Bootstrap+jfinal退出系统弹出确认框,希望大家喜欢这篇文章,谢谢大家的阅读。

Javascript 相关文章推荐
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
Javascript继承机制的设计思想分享
Aug 28 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
Jan 21 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
jQuery 生成svg矢量二维码
Aug 09 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
Mar 16 Javascript
微信小程序页面传值实例分析
Apr 19 Javascript
React操作真实DOM实现动态吸底部的示例
Oct 23 Javascript
Angular实现的简单定时器功能示例
Dec 28 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
详解vue的数据劫持以及操作数组的坑
Apr 18 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
May 30 #Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 #Javascript
BootStrap下jQuery自动完成的样式调整
May 30 #Javascript
JavaScript常用判断写法大全(推荐)
May 30 #Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
May 30 #Javascript
基于Angularjs实现分页功能
May 30 #Javascript
AngularJs实现分页功能不带省略号的代码
May 30 #Javascript
You might like
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python中的sort方法使用详解
2014/07/25 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
应届专科生个人的自我评价
2014/01/05 职场文书
中学生运动会入场词
2014/02/12 职场文书
小学开学标语
2014/07/01 职场文书
怎样写离婚协议书
2014/09/10 职场文书
停车位租赁协议书
2014/09/24 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技