Javascript 在IE 8中单击标签时触发单击输入
我正在jquery colorbox中创建一个小部件,它允许用户加载文件。我实施它的方式如下: 我有一个带有Javascript 在IE 8中单击标签时触发单击输入,javascript,jquery,html,css,internet-explorer-8,Javascript,Jquery,Html,Css,Internet Explorer 8,我正在jquery colorbox中创建一个小部件,它允许用户加载文件。我实施它的方式如下: 我有一个带有type='file'的输入标记和带有可见性的样式:hidden, 然后,我创建了两个标签,它们都具有指向文件上传输入元素的“for”属性,样式类似于按钮。所以当用户点击它时,浏览器会为他们打开选择文件弹出窗口 这种方法适用于IE9、IE10。但它在IE8中不起作用,点击标签似乎甚至不会触发输入元素上的点击事件 请帮帮我 提前感谢您可以: $('label').on('click',fun
type='file'
的输入标记和带有可见性的样式:hidden
,
然后,我创建了两个标签,它们都具有指向文件上传输入元素的“for”属性,样式类似于按钮。所以当用户点击它时,浏览器会为他们打开选择文件弹出窗口
这种方法适用于IE9、IE10。但它在IE8中不起作用,点击标签似乎甚至不会触发输入元素上的点击事件
请帮帮我
提前感谢您可以:
$('label').on('click',function() {
$('input').trigger('click');
}
确保:
1) 您使用带有for
属性的标签,该属性通过id
指向您的输入
2) 您的输入没有CSS显示:无
。尝试使用宽度:0
,高度:0
,边距:-10000px
等来隐藏它
这似乎对我目前的IE8有效。谢谢你的回答,但我不能使用javascript触发点击事件,因为IE8会认为它不安全,所以在上传过程中,我会收到一个拒绝访问的错误。嗯……可能与
可见性:隐藏
有关。您是否尝试过将其保持在远离页面的可见性和绝对位置?也许标签会起作用,你无法触发它。你必须将输入放置在标签上方,并使其不透明…用户最终会单击输入,但他们实际上看不到它。非常感谢Ian,我完全按照你上面所说的做了,现在它工作了。正确。或使用位置:固定;左:-9999px代码>将元素移出视口。