2011-05-06 86 views
1

我最近实现了一个jQuery/iframe解决方案来上传文件,并遇到了一个相当恼人的问题(当然只有在IE中)。jQuery/iframe文件上传解决方案问题

单击我的上传按钮并选择要上传的文件后,我会自动将包含该文件的表单提交给我的iframe。但是 - 我需要点击页面上的任何位置,以便提交来处理并触发我的控制器中的操作。

我认为这是一个与iframe获得焦点问题,这似乎是停止完成执行的'变化'功能,但我不完全确定。 iframe可能需要某种类型的onload函数才能将焦点移回原始页面以继续执行?

代码:

表&文件上传:

<form id="attachForm" action="<%= Url.Action("TestUpload","Images") %>" 
     method="post" enctype="multipart/form-data" target='upload_target' > 
     <input id='actualupload' type='file' multiple="" name='file' /> 
</form> 
<iframe id='upload_target' name='upload_target' src='' 
     style="width:0; height: 0; border: 0;" frameborder="0"></iframe> 

jQuery来提交表单:

$("#actualupload").live('change',function() 
{ 
    $("#attachForm").submit(); 
    alert("Fired!"); //This only occurs after clicking on the screen after the 
        //file selection. 
}); 

回答

3

看来,.live()导致这种奇怪behavi要么。如果您使用,即

$(function() { 
    $("#actualupload").change(function() 
    { 
     $("#attachForm").submit(); 
     alert("Fired!"); //This only occurs after clicking on the screen after the 
         //file selection. 
    }); 
}); 

它也适用于IE。

+0

谢谢丹尼尔!这工作就像一个魅力! – 2011-05-06 14:17:34