Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在IE 8中单击标签时触发单击输入_Javascript_Jquery_Html_Css_Internet Explorer 8 - Fatal编程技术网

Javascript 在IE 8中单击标签时触发单击输入

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

我正在jquery colorbox中创建一个小部件,它允许用户加载文件。我实施它的方式如下:

我有一个带有
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将元素移出视口。