`

artDialog弹出新页面,保存后关闭弹出框并刷新父页面

阅读更多

IT技术-群英社

 

 

artDialog 弹出框插件,或者说是弹出对话框插件,需要对弹出后的对话框操作?artDialog的控制接口就是用来干这些事情的,这在异步消息操作中非常有用。 artDialog功能特性: 自适应内容、强大的接口配置参数、细致的体验、预先缓存皮肤图片更快响应、跨平台兼容兼容:IE6+、Firefox、Chrome、Safari、 Opera。并且IE6下也能支持现代浏览器的静止定位(fixed)、覆盖下拉控件、alpha通道png背景等,而且在artDialog弹出框插件 中,框架应用扩展将完全被简化。

 

最近项目中有使用到artDialog,遇到一些问题:

1:弹窗open一个新页面,在点击弹窗的确定按钮时保存数据并关闭该弹出框并刷新父页面。

下面有个例子,转载于zhangwu

打开编辑页面代码,确定事件调用了页面上隐藏的btnsave按钮。

art.dialog.open(url, {

        id: 'pg123',

        title: strtitle, lock: false, width: wid, height: hei,

        ok: function () {

            var iframe = this.iframe.contentWindow;

            iframe.document.getElementById("btnsave").click();

            return false;

        },

        cancel: true

    });

保存后调用

function showtip2(str) {

    art.dialog.tips(str, 1.5);

    setTimeout('originreload()', 1000);

}

function originreload()

{

    var win = art.dialog.open.origin;//来源页面

    win.location.reload();

}

刷新父窗体,自动关闭弹出窗体。

 以上代码我使用后还是有问题,在保存时调用方法sumitModelForm(),在其后调用showtip2("操作成功!");后,数据保存了,但是窗口未关闭。

 

function sumitModelForm(){
	
	if($("#modelForm").valid()){
	    $("#modelForm").submit();
	}
	
}

 

 经过检查+不断测试,发现ajaxForm可以完善该功能。我之前是直接form.submit()的。

修改代码如下:

1)在弹窗新开页面引入jquery.form.js 以及 artDialog库;

2)后台操作后使用response.getWrite().print("success")来表示操作成功等;

3)父页面弹窗代码

var alt=null;
function openAddUser(operId){
    alt = art.dialog.open("openSavePage.do?operId="+operId, {
	    id:'evaluate'+operId,
    	title: '新增用户',
    	width :500,
	    height:320,
	    lock : true,
	    opacity : 0.4,
    	init: function () {
    	},
    	button :[
     		{
     			name : '确定',
     			callback : function(){
     				var iframe = this.iframe.contentWindow;
     				if (!iframe.document.body) {
         				return false;
        	 		};
        	 		iframe.sumitModelForm();
     				return false;
     			},
     			focus : true
     		},{
     			name : '取消',
     			callback : function(){
     				this.close();
     			}
     		}
     	],
    	cancel: true
    });
}

 

 

4)子页面代码

$(document).ready(function(){
	$("#modelForm").validate({
		errorClass:"text-error"
	});
	
	var options = {
		success: function(data) {
	        if(data=="success"){
	           showTip("操作成功","succeed");
	        }else{
	           showTip("操作失败","warning");
	        }
	}};
	$('#modelForm').ajaxForm(options);
});
//提交form
function sumitModelForm(){
	$('#modelForm').submit();
}	
//消息提示
function showTip(mess,icon) {
	art.dialog.through({
		id : 'Tip',
		title : '消息',
		fixed : true,
		lock : true,
		opacity: .2,
		content : mess,
		icon : icon,
		time : 1
	});
    setTimeout('originReload()', 1000);
}
//重载来源页面
function originReload(){
    var win = art.dialog.open.origin;
    win.location.reload();
}

 

<form id="modelForm" method="post" action="save.do">
 
...编辑域...
</form>

 

 

 以上代码,通过artdialog弹出form表单,并通过ajaxform来提交的js(表单可以采用jquery validate验证控件来验证表单),达到了我想要的效果。虽然比较曲折,对js还是得加强学习。

 

如果不想重装源页面,只想关闭dialog而已。

则使用一下方法closeAllDialog()替换掉之前的originReload()方法即可

//关闭源页面上的所有dialog
function closeAllDialog(id) {
	//获得弹出窗口的源页面
	var win = art.dialog.open.origin;
	var list = win.art.dialog.list;
	for (var i in list) {
	    list[i].close();
	};
}

 

分享到:
评论
1 楼 zqb666kkk 2014-10-14  
ajaxForm是 第三方插件的方法?

相关推荐

    弹出层关闭父页面刷新

    在网页开发中,有时我们需要实现一个功能:当一个弹出层(通常是模态窗口或对话框)被关闭时,能够自动刷新其父页面的内容。这个功能常见于数据编辑或者信息确认场景,用户在子窗口中完成操作后,返回父页面看到最新...

    jquery弹出层不关闭 父页面刷新

    在IT领域,尤其是在Web开发中,"jquery弹出层不关闭 父页面刷新"是一个常见的交互需求。这里,我们主要讨论如何使用jQuery实现这样的功能,即在一个弹出层(通常是一个模态对话框)显示时,用户可以操作父页面而不会...

    artdialog弹出层

    **artDialog弹出层**是一种常用的前端对话框插件,它在网页中提供了一种优雅的方式来展示信息、警告、确认或获取用户输入。这个插件以其丰富的定制选项、良好的可扩展性和高性能而受到开发者的青睐。`artDialog` 的...

    demo_DEMO_子页面刷新父页面iframe_

    子页面向`window.parent`发送消息,然后在父页面中监听`message`事件,接收到消息后执行刷新操作。例如,在子页面: ```javascript window.parent.postMessage('refresh', '*'); ``` 在父页面: ```javascript ...

    showModalDialog 弹出窗口关闭不刷新父窗口最终实现了

    然而,在某些情况下,我们可能希望在关闭弹出窗口后,不刷新父窗口(即打开弹出窗口的页面),以保持当前页面状态不变。本文将详细介绍如何实现这一需求。 #### 二、问题描述 根据题目中的描述,开发者在`index....

    asp.net表单验证及artDialog弹出框

    例如,当用户提交的表单数据无效时,可以通过artDialog弹出一个提示框,清晰地显示错误信息,而不是简单地显示红色边框或错误消息。 总的来说,理解并熟练掌握ASP.NET的表单验证机制以及如何利用像artDialog这样的...

    弹出框artDialog4.1.6.zip

    - 可以通过回调函数处理弹出框关闭后的逻辑。 7. **优化与扩展** 虽然artDialog已经非常完善,但开发者还可以根据需求对其进行二次开发,如添加自定义皮肤、扩展功能模块等,以满足项目的特定需求。 总结来说,...

    artDialog弹出模式窗API

    `artDialog弹出模式窗API`是一款在Web开发中广泛应用的JavaScript库,它为开发者提供了丰富而强大的对话框功能。这个API允许你创建各种类型的弹出窗口,包括但不限于提示、确认、询问等,使得网页交互更加直观且美观...

    artDialog弹出层插件

    **artDialog弹出层插件**是一个常用的JavaScript插件,用于在网页中创建各种弹出对话框。这个插件的设计目标是提供一个高度可定制、轻量级且易于使用的解决方案,帮助开发者快速实现诸如提示、确认、警告以及复杂的...

    artDialog页面弹出框

    artDialog的特殊UI框架能够适应内容变化,甚至连外部程序动态插入的内容它仍然能自适应,因此你不必去考虑消息内容尺寸使用它。它的消息容器甚至能够根据宽度让文本居中或居左对齐——这一切全是XHTML+CSS原生实现。

    JS刷新父页面 父窗口

    根据给定的信息,我们可以深入探讨如何使用JavaScript来刷新父页面,并进一步分析提供的示例代码以及扩展其他相关的知识点。 ### JS刷新父页面 在JavaScript中,我们经常遇到需要在一个弹出的窗口(子窗口)中执行...

    open 关闭子页面刷新父页面

    根据给定的代码片段和描述,“open关闭子页面刷新父页面”这一主题涉及到的关键知识点主要包括:使用JavaScript打开新窗口、父窗口与子窗口之间的通信,以及通过特定事件触发父窗口的刷新。 ### 使用JavaScript打开...

    easyUi弹出window窗口传值与调用父页面的方法,子页面给父页面赋值

    综上所述,EasyUI弹出窗口的传值与调用父页面方法涉及到前端页面交互的基本技术,理解并熟练掌握这些技巧对于前端开发者来说至关重要。通过正确使用这些方法,可以有效地实现页面间的数据流动和功能协同,提升用户...

    jsp 刷新父页面

    用iframe、弹出子页面刷新父页面 iframe parent.location.reload(); 弹出子页面 window.opener.location.reload(); 子窗口刷新父窗口 self.window.opener.locaction.reload(); 刷新一open()方法打开的窗口 ...

    JS无刷新弹出确认框

    在网页中,我们经常需要实现无刷新的弹出确认框,以在用户进行关键操作前获取他们的确认,例如删除或修改数据。这种效果通过JS可以轻松实现,而无需每次操作都刷新整个页面,提高了用户体验。 无刷新弹出确认框的...

    jquery easyui 表头固定 datagrid 弹出框 AJAX刷新页面

    标题 "jquery easyui 表头固定 datagrid 弹出框 AJAX刷新页面" 涉及的是在网页开发中使用jQuery EasyUI库实现的功能。jQuery EasyUI是一个基于jQuery的UI框架,它提供了一系列易于使用的组件,如datagrid(数据网格...

    基于jQuery的artDialog 弹出窗插件效果 4.1.7.zip

    《基于jQuery的artDialog弹出窗插件效果详解——4.1.7版本解析》 在Web开发中,用户交互的界面设计与实现是至关重要的,而弹出窗口作为常见的一种交互方式,被广泛应用于通知、确认、设置等场景。jQuery的artDialog...

    js弹出一个新页面并获得弹出页面的值

    根据提供的文件信息,本文将详细解释如何使用JavaScript在父页面中弹出一个新的窗口,并从这个新弹出的窗口中获取数据。此技术常用于需要在当前页面与另一个页面之间进行数据交互的应用场景。 ### 一、理解弹窗原理...

    artDialog 2 漂亮的网页弹出框插件升级版

    **artDialog 2 网页弹出框插件详解** `artDialog 2` 是一个功能强大且美观的网页对话框插件,专为提升网页用户体验而设计。这款插件以其优雅的界面和丰富的定制选项深受开发者喜爱,是前端开发中的得力工具。在本文...

    同一父页面的一个子页面刷新另一个子页面

    5. **页面重载与局部更新**:在接收到消息后,子页面可以使用`location.reload()`方法实现全页面刷新,或者通过Ajax请求获取新数据并使用DOM操作替换现有内容,实现局部刷新。 6. **数据传输格式**:`postMessage`...

Global site tag (gtag.js) - Google Analytics