jQuery MiniUI

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

type=file 与window.CloseOwnerWindow的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-7-23 11:27:05 |只看该作者 |倒序浏览


点击新增的时候,弹出一个新的窗体,

然后选择文件点击上传,后台就会把文件上传并把数据保存到数据库,然后alert(上传成功),接着问题出现了,如果此时我没有加window.CloseOwnerWindow这句话,我自己点击右上角的X,手动关闭增加附件这个窗体,则文件有上传有保存,如果我加了局window.closeownerwindow,让这个窗体自动关闭,则文件没上传也没保存,这是为什么啊???
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2014-7-23 11:41:52 |只看该作者
你保存和上传写在什么事件里的
你js调用的时候没触发方法吧

Rank: 2

板凳
发表于 2014-7-23 15:00:07 |只看该作者
felt 发表于 2014-7-23 11:41
你保存和上传写在什么事件里的
你js调用的时候没触发方法吧

点击新增的代码
  1.   function addAttachment(){
  2.             var o = form.getData();  
  3.             var json = mini.encode(o);
  4.              mini.open({
  5.                 url: "__URL__/addFile",
  6.                 title: "增加附件", width:450, height:300,
  7.                 onload: function () {
  8.                     var iframe = this.getIFrameEl();
  9.                     var data = { id: json};
  10.                     iframe.contentWindow.SetData(data);
  11.                 },
  12.                 ondestroy: function(){
  13.                     grid.reload();
  14.                 }
  15.             });
  16.         }
复制代码
新增页面点击上传的代码
  1. function uploads(){
  2.                 var form1 = document.getElementById("myForm1");      
  3.                 var tagElements = form1.getElementsByTagName('input');  

  4.                 for(var i =0;i<tagElements.length;i++){
  5.                     if(tagElements[i].value == "" || tagElements[i].value ==null){
  6.                         alert("请正确选择要上传的文件!");
  7.                         return ;
  8.                     }
  9.                 }
  10.                 document.myForm1.action="__URL__/upload/?id="+correctNo;
  11.                 document.myForm1.submit();
  12.                 alert('上传成功');
  13.                // window.CloseOwnerWindow('save');
  14.         }
复制代码

Rank: 2

地板
发表于 2014-7-23 15:01:48 |只看该作者
felt 发表于 2014-7-23 11:41
你保存和上传写在什么事件里的
你js调用的时候没触发方法吧
  1. // window.CloseOwnerWindow('save');
复制代码
把这句注释掉,然后上传完后,点击右上角的x就能上传了。。。

Rank: 8Rank: 8

5#
发表于 2014-7-23 15:19:25 |只看该作者
killermeter 发表于 2014-7-23 15:01
把这句注释掉,然后上传完后,点击右上角的x就能上传了。。。

表单没提交完这个页面就关闭了吧,你延时一下试试

Rank: 2

6#
发表于 2014-7-23 15:53:26 |只看该作者
felt 发表于 2014-7-23 15:19
表单没提交完这个页面就关闭了吧,你延时一下试试

延时?是alert出来后等会儿点ok吗?还是一样呀。。。。

Rank: 8Rank: 8

7#
发表于 2014-7-23 15:59:48 |只看该作者
killermeter 发表于 2014-7-23 15:53
延时?是alert出来后等会儿点ok吗?还是一样呀。。。。

setTimeout(function(){
   window.CloseOwnerWindow();
},3000)
这样延时试一下

Rank: 2

8#
发表于 2014-7-23 16:26:06 |只看该作者
felt 发表于 2014-7-23 15:59
setTimeout(function(){
   window.CloseOwnerWindow();
},3000)

这样行了耶~~不过这样等在那儿3s好像很突兀诶,能不能来个遮罩3s啊?怎么用啊??

Rank: 8Rank: 8

9#
发表于 2014-7-23 16:33:30 |只看该作者
killermeter 发表于 2014-7-23 16:26
这样行了耶~~不过这样等在那儿3s好像很突兀诶,能不能来个遮罩3s啊?怎么用啊?? ...

这个延时你可以根据你那边的实际延时设置小一点的,我只是定位一下你的问题所以放了3秒
原生表单提交的话不好控制返回的时间,你可以尝试用ajax提交,这样可以在ajax的success回调里处理关闭

Rank: 2

10#
发表于 2014-7-23 16:55:34 |只看该作者
felt 发表于 2014-7-23 16:33
这个延时你可以根据你那边的实际延时设置小一点的,我只是定位一下你的问题所以放了3秒
原生表单提交的话 ...

上传提交:网上说不能用ajax,所以我用的是
  1. iframe
复制代码
。。怎么用ajax啊?

Archiver|普加软件

GMT+8, 2025-7-16 02:25 , Processed in 1.054048 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部