2012-06-06 52 views
3

此論壇已經涵蓋此主題,但我還沒有找到一個工作的IE解決方案呢(測試7,8 & 9)。在其他瀏覽器中正常工作。我希望有人有一個解決方案。 在此先感謝!jQuery表單自動提交文件輸入更改在IE中

這是怎麼:

我想擺脫標準的文件輸入元素的,所以我說的圖像。 點擊它顯示瀏覽窗口。當選擇一個文件時,表單被提交。 由於瀏覽器的安全性,我暫時顯示文件輸入元素,焦點並隱藏它。

的問題: 「訪問被拒絕」

IE顯示jquery.1.7.2.js行3241,字符6。 沒有顯示/隱藏技巧,問題仍然存在。 當我點擊瀏覽按鈕並選擇一個文件時,表單會被提交。 這個問題似乎是該文件的瀏覽行爲被另一個元素觸發:

全碼:

$('#fakeupload').click(function(){ 
     $('#form').show(); 
     $('#realupload').focus().trigger('click'); 
     $('#form').hide();   
    }); 

    $('#realupload').change(function(){ 
     $('#form').show(); 
     $('#form').submit(); 
     $('#form').hide();   
    }); 
+0

你肯定非常接近解決這個問題,我已經看到了它拿出往往只用「這是不可能的「解決方案:你是否準確地指出了你的代碼中哪一行導致了」訪問被拒絕「? –

+0

@KevinB錯誤是由$('#form')。submit()引起的;當我僅使用2nd代碼的一部分(realupload).change。 – Robert

+0

你有一些特殊的表單處理程序,或者是提交給隱藏的iframe,或者是提交到同一頁面等 –

回答

0

這仍然是一個無法解決的問題。爲了使其工作,瀏覽按鈕必須由用戶點擊。這裏的技巧是修改瀏覽按鈕,使其適合圖像。

+0

我只是想添加到這個答案,您可以使用CSS設置瀏覽按鈕的不透明度,以便用戶在他們認爲他們點擊其他內容時實際單擊瀏覽按鈕。 Etc. filter:progid:DXImageTransform.Microsoft。α(不透明度= 0); \t \t \t filter:alpha(opacity = 0); \t \t \t \t \t \t \t \t \t \t \t -MS-濾波器: 「的progid:DXImageTransform.Microsoft.Alpha(不透明度= 0)」; \t \t \t \t \t \t \t \t \t \t \t不透明度:0; – MartinF

0

你嘗試爲您的文件分配權限通過瀏覽器訪問? 您是否清除了緩存? 嘗試設置到期日期嗎? 嘗試用css替換show()/ hide()(「display」,「block」)/ css(「display」,「none」)

+1

感謝您的努力,但我真的不認爲您會走向正確的方向。 – Robert

1

由於微軟一羣沒有那麼聰明的人做出了決定,因此Internet Explorer 8阻止了「拒絕訪問」。

如果您嘗試在輸入類型文件中觸發點擊方法,則以後您在提交時會遇到問題。

這是唯一能做這種事情的瀏覽器。

再次感謝微軟,您的瀏覽器是一個「作品的」> :(

+0

這是一件安全的事情,我完全可以理解爲什麼不允許僞造點擊。我不滿意,但我可以聯繫。而IE並不是唯一一個,Chrome也有相同的「問題」。 – Robert