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 相关文章推荐
html dom节点操作(获取/修改/添加或删除)
Jan 23 Javascript
jquery ajax 局部无刷新更新数据的实现案例
Feb 08 Javascript
按Enter键触发事件的jquery方法实现代码
Feb 17 Javascript
JavaScript中的6种运算符总结
Oct 16 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
原生js实现日期联动
Jan 12 Javascript
JavaScript兼容性总结之获取非行间样式案例
Aug 07 Javascript
loading动画特效小结
Jan 22 Javascript
JavaScript转换数据库DateTime字段类型方法
Jun 27 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
Aug 10 Javascript
node.js使用http模块创建服务器和客户端完整示例
Feb 10 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
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+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
Python中动态创建类实例的方法
2017/03/24 Python
Python程序运行原理图文解析
2018/02/10 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
python-str,list,set间的转换实例
2018/06/27 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
Python验证码截取识别代码实例
2020/05/16 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
.NET面试10题
2014/02/24 面试题
五好关工委申报材料
2014/05/31 职场文书
篮球赛口号
2014/06/18 职场文书
体育口号大全
2014/06/18 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
论文答谢词
2015/01/20 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技