【问题标题】:Trigger Click on Input when Label is Clicked in IE 8在 IE 8 中单击标签时触发单击输入
【发布时间】:2014-05-21 20:12:45
【问题描述】:

我在 jquery colorbox 中创建一个小部件,它允许用户加载文件。遵循我的实现方式:

我有一个带有type='file' 的输入标签和带有visibility:hidden 的样式, 然后,我创建了两个标签,它们都具有指向文件上传输入元素的“for”属性,其样式类似于按钮。所以当用户点击它时,浏览器会为他们打开选择文件弹出窗口。

此方法适用于 IE9、IE10。但它在 IE8 中不起作用,点击标签似乎甚至不会触发输入元素上的点击事件。

请帮帮我。

提前致谢

【问题讨论】:

  • 您将无法触发它。您必须将输入放置在标签上方并使其不透明......用户最终会点击输入,但他们实际上不会看到它。
  • 非常感谢伊恩,我按照你上面所说的做了,现在可以了。

标签: javascript jquery html css internet-explorer-8


【解决方案1】:

你可以这样做:

$('label').on('click',function() {
    $('input').trigger('click');
}

【讨论】:

  • 感谢您的回答,但是我不能使用javascript触发点击事件,因为IE8会认为它不安全,所以在上传过程中,我会收到拒绝访问的错误。跨度>
  • 嗯...也许与visibility: hidden有关。您是否尝试过使其可见性和绝对定位远离页面?也许那样标签会起作用。
【解决方案2】:

确保:

1) 您使用带有 for 属性的标签指向您的输入 id

2) 您的输入没有 CSS display:none。尝试使用width:0height:0margin:-10000px 等来隐藏它。

目前这对我来说似乎适用于 IE8。

【讨论】:

  • 正确。或使用position: fixed; left: -9999px; 将元素移出视口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 1970-01-01
  • 2012-01-04
  • 2011-06-13
相关资源
最近更新 更多