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 相关文章推荐
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
js添加事件的通用方法推荐
May 15 Javascript
js验证框架实现代码分享
May 18 Javascript
第三篇Bootstrap网格基础
Jun 21 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
浅析JS抽象工厂模式
Dec 14 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
Dec 27 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
Feb 22 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
TypeScript 使用 Tuple Union 声明函数重载
Apr 07 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 在线打包_支持子目录
2008/06/28 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python中的多重装饰器
2015/04/11 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
Python实现数字的格式化输出
2020/08/01 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
财务会计毕业生自荐信
2013/11/02 职场文书
初中生三年学习生活的自我评价
2013/11/03 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
愚人节活动策划方案
2014/03/11 职场文书
一分钟演讲稿
2014/04/30 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python