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 相关文章推荐
使用jquery实现图文切换效果另加特效
Jan 20 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
jquery获取当前点击对象的value方法
Feb 28 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
Sep 17 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
Nov 23 Javascript
web 屏蔽BackSpace键实例代码
Dec 24 Javascript
vue.js 初体验之Chrome 插件开发实录
May 13 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
Vue中的数据监听和数据交互案例解析
Jul 12 Javascript
基于Vue实现拖拽效果
Apr 27 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
详解Vue源码中一些util函数
Apr 24 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
如何做到多笔资料的同步
2006/10/09 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
php实现的顺序线性表示例
2019/05/04 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
js类型检查实现代码
2010/10/29 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
python 排序算法总结及实例详解
2016/09/28 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Python爬虫开发与项目实战
2020/12/16 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
德国排名第一的主题公园门票网站:Attraction Tickets Direct
2019/09/09 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
小学红领巾中秋节广播稿
2014/01/13 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
公民授权委托书
2014/10/15 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
出国留学英文自荐信
2015/03/25 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server