2013-07-23 77 views
0

我使用iframe進行文件上傳,並且在除IE以外的所有瀏覽器中工作正常。它表示在form.submit行中拒絕訪問。請檢查我的代碼如下。隱藏文件類型的文件上傳,通過jquery提交表格

$(function(){ 
     $('.uploadBanner').click(function() { 
       $('.uploadFile').trigger('click'); 
      }); 
     $(".uploadFile").on('change', function(e){ 
      e.preventDefault();    
      document.getElementById('bannerUploadForm').submit(); 
     }); 

    }); 

在我的.uploadBanner是隱藏字段click事件和.uploadFile是隱藏的文件類型

讓我知道這一點。

回答

1

由於安全原因,IE不允許操作來自JavaScript的type =「file」輸入元素。

你可以爲這個問題做一個變通來檢測,如果瀏覽器是ie打開一個文件上傳對話框,讓用戶手動點擊它

if(jQuery.browser.msie) { 
    $('#hiddenUploadForm').dialog(); 
} 
else { 
    $('.uploadFile').click(); 
} 
+0

獲取對話框沒有問題,但是當我選擇文件時它無法提交。 – sandy

+0

不要以編程方式點擊'file'輸入欄,而是讓用戶點擊它 –

0

IE明確禁止從編程對外開放文件選擇器對話框(通過觸發單擊事件),然後以編程方式上傳任何選定的文件。在這種情況下,當您嘗試提交表單時會發生錯誤。讓用戶改爲點擊文件輸入元素,你會沒事的。如果您需要設置文件輸入元素的樣式,則不難做到這一點。簡單地說它是不透明的,並添加使其成爲包含適當樣式的div的孩子。如果需要,請在SO或Google上查找具體信息。