我在使文件输入以我想要的方式工作时遇到了一些麻烦。文件元素由2部分组成,即文本字段和浏览按钮。在IE之外的其他浏览器中单击其中任何一个都会打开一个窗口,您可以在其中选择文件在IE中,它只在我单击浏览按钮时打开。如果我单击它旁边的文本字段,我必须双击以便打开窗口。 有没有办法用javascript解决这个问题,所以单击文本字段也会打开窗口?我尝试了以下,但它没有用。 (代码与实例相比简化得多)
HTML:
<input id="file" name="file" type="file"/>
JS / jQuery:
$("#file").click(function(){
$(this).trigger("dblclick");
});
$("#file").dblclick(function(){
alert("Double");
});
现在上面的代码警告“Double”但不打开窗口。有办法解决这个问题吗?
提前致谢。
答案 0 :(得分:9)
由于整个控件是浏览器的原生控件(并且永远不会显示为文本框加按钮),因此您无法访问允许您调用上传按钮的方法/事件。我相信这主要是为了避免网站欺骗用户上传非预期的文件。
如果您可以花一点时间来实施解决方法,this可以创建一个更易于管理的相当不错的上传组件。我确定快速谷歌会列出许多关于如何设置文件上传组件样式的其他示例。
答案 1 :(得分:0)
刚刚在IE6(http://jsfiddle.net/SUWRK/)上使用JSFiddle测试了您的代码,根据我的理解,它可以正常运行...单击事件即会显示警报(请请注意,在IE&lt; 9中捕获dblclick事件是很棘手的 - 请参阅https://gist.github.com/399624)。
你确定更大的代码集没有其他的东西吗?