2011-06-09 51 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