如何使用jQuery触发<input type="file">元素

3
有没有办法触发以下元素的点击事件:
<input id="test" type="file">

?

6个回答

5

2
不要在CSS中最初使用"display:none"或"visibility:hidden"。
在JQuery中:
$(document).ready(function() {
 $('#test').hide(); 
});

那真的帮了我很多......太棒了......我之前一直想不通为什么它能工作......但它确实能工作... :) - Varun Agarwal

1
无法通过编程方式触发上传窗口,但如果你只想隐藏丑陋的“选择文件”按钮和输入框,有一个简单的解决方案。只需使用任何旧技术隐藏输入,并添加一个引用它的标签。然后,您可以按照所需的任何方式对标签进行样式设置。点击标签将触发上传窗口。

For example:

<input id="test" type="file" style="display: none" />
<label for="test" class="make-it-look-like-a-button">Upload</label>


我自己一直在使用点击触发器,直到我发现了一个问题。如果您出于某种原因在动态元素上使用点击触发器,则不会将上传加载到输入中。无论如何,我采纳了您的建议,并将标签样式化为按钮,它可以工作,即使在动态情况下也是如此。我知道那个人正在介绍如何在jQuery中实现这一点,但实际上这应该是被接受的答案。 - Thomas Williams

0
据我所知,出于安全原因,没有办法以编程方式触发它。您必须明确地单击它。

1
请参考Khaled的评论。你所要做的就是在JavaScript中触发文件输入的点击。 - Neil Monroe
预先填充输入类型文件绝对不可能,因为存在安全考虑(未经用户同意或知情窃取用户文件),但是浏览器允许打开它,并且可以通过以下方式完成 - user216084

0

由于安全原因,不可能实现。


-1
没有,这是一件好事,因为对于用户来说,这将非常令人烦恼。用户是否想要上传某个文件仅由其自己控制,我个人讨厌当我访问一个网站时,它会自动把打开对话框放到我的面前。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接