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 相关文章推荐
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
在vs2010中调试javascript代码方法
Feb 11 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
jQuery中noconflict函数的实现原理分解
Feb 03 Javascript
js+CSS实现弹出居中背景半透明div层的方法
Feb 26 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
Dec 23 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
带你了解session和cookie作用原理区别和用法
Aug 14 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
ES6学习笔记之map、set与数组、对象的对比
Mar 01 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
Jan 09 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 ajax 分页类代码
2008/11/13 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
Javascript拓展String方法小结
2013/07/08 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
python实现bucket排序算法实例分析
2015/05/04 Python
星球大战与Python之间的那些事
2016/01/07 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
python使用KNN算法手写体识别
2018/02/01 Python
Python GUI编程完整示例
2019/04/04 Python
Python列表的切片实例讲解
2019/08/20 Python
python中class的定义及使用教程
2019/09/18 Python
python线程里哪种模块比较适合
2020/08/02 Python
Python grpc超时机制代码示例
2020/09/14 Python
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
面试求职的个人自我评价
2013/11/16 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python