jQuery MiniUI

 找回密码
 立即注册
查看: 4628|回复: 6
打印 上一主题 下一主题

window.Owner.子页面提交表单到父页面,页面刷新无法关闭 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2017-10-10 10:02:04 |只看该作者 |倒序浏览
子页面为弹出框,点击保存按钮调用如下方法: function SaveData()
        {
            var o = form.getData();            
            form.validate();
            CloseWindow("close");
            window.Owner.add(o);
        }

但是无法关闭弹框,表单已经提交好了,页面刷新,然后表单清空,点击取消后父页面的表格会显示数据
如果把 CloseWindow("close");放在window.Owner.add(o);之后,则无法执行
上网搜索了一些阻止表单提交页面刷新的方法,但是无法实现
如将表单提交到隐藏的iframe里,            event.preventDefault();等
希望可以帮忙解决一下,多谢

Rank: 8Rank: 8

沙发
发表于 2017-10-10 11:10:57 |只看该作者
是mini.open弹出吗?
可以在ondestroy事件里传递数据
mini.open({
ondestroy: function (action) {  //弹出页面关闭前
        if (action == "ok") {       //如果点击“确定”
            var iframe = this.getIFrameEl();
            //获取选中、编辑的结果
            var data = iframe.contentWindow.GetData();
            data = mini.clone(data);    //必须。克隆数据。
            ......
        }                        
    })

Rank: 1

板凳
发表于 2017-10-10 11:33:33 |只看该作者
dforce 发表于 2017-10-10 11:10
是mini.open弹出吗?
可以在ondestroy事件里传递数据
mini.open({

在这里面怎么关闭掉那个子页面呢?
子页面数据已经传完了,但是刷新页面,关不掉

Rank: 8Rank: 8

地板
发表于 2017-10-10 13:17:30 |只看该作者
Lubobo 发表于 2017-10-10 11:33
在这里面怎么关闭掉那个子页面呢?
子页面数据已经传完了,但是刷新页面,关不掉 ...

可以参考一下我们示例,调用CloseWindow()方法来关闭子页面
http://www.miniui.com/demo/#src=datagrid/datagrid.html的弹出子页面
在试用包内是demo/CommonLibs/EmployeeWindow.html

Rank: 1

5#
发表于 2017-10-10 13:30:54 |只看该作者
dforce 发表于 2017-10-10 13:17
可以参考一下我们示例,调用CloseWindow()方法来关闭子页面
http://www.miniui.com/demo/#src=datagrid/d ...

嗯,这个我有看懂,只不过我在做一个演示页面,没有后台数据可以连接,所以是直接从子页面传数据给父页面的,我在父页面的add(params)函数里面是这么写的
ondestroy: function (action)
                            {
                                    grid.addRow(userData);
                                   
                            }
而不是用的grid.reload();来刷新后台数据

Rank: 8Rank: 8

6#
发表于 2017-10-10 13:41:20 |只看该作者
Lubobo 发表于 2017-10-10 13:30
嗯,这个我有看懂,只不过我在做一个演示页面,没有后台数据可以连接,所以是直接从子页面传数据给父页面 ...

一样的,你这里可以跨页面获取到的。
ondestroy: function (action) {  //弹出页面关闭前
      
            var iframe = this.getIFrameEl();
            var data = iframe.contentWindow.GetData();   //可以写一个自定义方法获取弹出页面的数据
            data = mini.clone(data);   
            grid.addRows(data);
            ......
        }                        
    })

Rank: 1

7#
发表于 2017-10-10 13:52:32 |只看该作者
dforce 发表于 2017-10-10 13:41
一样的,你这里可以跨页面获取到的。
ondestroy: function (action) {  //弹出页面关闭前
      

恩,谢谢,虽然不知道为什么还是一直在刷新页面……
不过我用其他办法解决了……
谢谢

Archiver|普加软件

GMT+8, 2024-11-23 04:09 , Processed in 1.048103 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部