2011-06-09 35 views
23

我必須打開文件上傳對話框,通過點擊其他按鈕,即我隱藏文件上傳控制(可見性:隱藏),並點擊其他一些按鈕,我想打開該對話框。 下面是我遇到的代碼:打開文件上傳對話框點擊

<input type="file" style="visibility: hidden;" /> 

下面是JavaScript:

$('#button').click(function() { 
    $('input[type=file]').click(); 
}); 

它在Firefox 4和IE8工作正常,但在chrome12它不工作,即對話框不被打開。任何想法爲什麼?

回答

0

您應該將輸入[文件]放在自定義控件的正上方。然後綁定到它的onclick。

還使它更大的字體大小,只有這樣你才能增加它的高度。

6

在您的示例中,您的文件輸入沒有id,但您正在嘗試使用#input引用它。這個工作對我來說:

$('#button').click(function() { 
    $('input[type=file]').click(); 
}); 
+0

對不起,我刪除它。 – 2011-06-09 12:40:34

+1

實際上這不起作用截至目前,無論是從更新到jquery無論是從瀏覽器更新 – 2013-02-04 15:22:49

8

測試今天在這個問題給出的局面已經改變了簡單的代碼:

  • IE9:工作
  • Chrome23:工作
  • Firefox15:工作

只有一個catch-on IE .click()是阻止操作,而在其他瀏覽器上則不是。

+0

你能解釋更多什麼是你的意思是通過阻止操作? – william 2013-07-04 08:58:16

+0

'fileElement.click(); var x = fileElement.value;' - 在IE上這將按預期工作,但在其他瀏覽器中'x'將是空的。 – 2013-07-04 17:43:03