以编程方式触发“选择文件”对话框

2022-08-30 05:31:12

我有一个隐藏的文件输入元素。是否可以从按钮的单击事件触发其选择文件对话框?


答案 1

如果您希望拥有自己的按钮来上传文件,而不是使用 ,则可以执行以下操作:<input type="file" />

<input id="myInput" type="file" style="visibility:hidden" />
<input type="button" value="Show Dialog" onclick="$('#myInput').click();" />

请注意,我使用了 ,而不是 .不能对未显示的文件输入调用单击事件。visibility: hiddendisplay: none


答案 2

这里的大多数答案都缺乏有用的信息:

是的,您可以使用 jQuery/JavaScript 以编程方式单击输入元素,但前提是您在属于由用户启动的事件的事件处理程序中执行此操作!

因此,例如,如果脚本以编程方式单击 ajax 回调中的按钮,则不会发生任何操作,但是如果将同一行代码放在用户引发的事件处理程序中,它将起作用。

附言:关键字会中断浏览窗口,如果它是在编程单击之前...至少在铬33中...debugger;