我想以<input type="file">编程方式在标记上触发click事件.
只是调用click()似乎没有做任何事情,或者至少它没有弹出文件选择对话框.
我一直在尝试使用侦听器捕获事件并重定向事件,但是我无法像点击某个人那样实际执行事件.
我试图使用jQuery触发上传框(浏览按钮).
我现在尝试的方法是:
$('#fileinput').trigger('click');
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.请帮忙.谢谢.
我们希望减少用户在我们网站上传文件所需的步骤数; 所以我们使用jQuery使用下面的标记打开和回发文件(简化):
<a onclick="$('#uplRegistrationImage').click();">
Change profile picture
</a>
<!-- Hidden to keep the UI clean -->
<asp:FileUpload ID="uplRegistrationImage"
runat="server"
ClientIDMode="static"
Style="display:none"
onchange="$('#btnSubmitImage').click();" />
<asp:Button runat="server"
ID="btnSubmitImage"
ClientIDMode="static"
Style="display:none"
OnClick="btnSubmitImage_OnClick"
UseSubmitBehavior="False" />
Run Code Online (Sandbox Code Playgroud)
这在Firefox和Chrome中运行得非常好; 单击链接时打开文件对话框,并在选择文件时触发回发.
但是在文件上传加载并且用户选择了文件后的IE9中; 在OnChange工作的内容我得到"SCRIPT5访问被拒绝"错误.我已经尝试设置任意超时,设置间隔以检查文件是否无效.
还有其他一些与此有关的问题; 但是没有一个看起来有一个像样的答案(有人说将文件对话框设置为透明并悬停在按钮后面!)
有没有人解决这个问题?或者我是否必须为IE用户提供按钮?