版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/moniteryao/article/details/70423352
Bootstrap的模态框效果不错,写js太麻烦了,忍了很久,还是自己封装一下吧。
1、首先把父页面的模态框的html稍微改一下:
<div class="modal fade" role="dialog" id="JuShiModal">
<div class="modal-dialog" role="document">//通过这里设置模态框的大小
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title"></h4>//这里是标题,留空
</div>
<div class="modal-body">
<p >
<iframe frameborder="0" id="childFrm" width="100%" height="500" style = "overflow-x:hidden;overflow-y:scroll;"></iframe>//这是是亮点
</p>
</div>
</div>
</div>
</div>
并在父页面添加如下js:
function dosuccess(){
$("#JuShiModal").modal('hide');
}
此方法是给子页面调用的,操作成功后关闭模态。
2、父页面定义个js方法:
function openDg(src,height,title){
//传了3个参数,请求的网址、模态的高度、标题
$("#childFrm").attr("src",src);
$("#childFrm").attr("height",height);
$(".modal-title").html(title);
$("#JuShiModal").modal('show');
}
3、事件触发:
<a href="#" onclick="openDg('Admin/Branch/a','200','添加部门')">添加部门</a>
说明:a 控制器其实就是现实页面,
4、子页面提交:
子页面的提交事件自己整吧,成功后执行
$this->do_success();
function do_success(){
$this->display(":Branch/succ");//succ.html就是成功页面
}
这个方法是跳转到成功页面,html如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="__ROOT__/public/js/jquery-1.7.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
setTimeout(function(){
window.parent.dosuccess();
},1000);
});
</script>
</head>
<body>
保存成功!
</body>
</html>
记得加载jq,此段代码的意思就是延迟1秒后,触发父页面的方法,来关闭模态,
至于成功页面的静态部分,自己整吧。
为了证明是iframe加载的页面,我把debug开启了,效果如下: