使用诱饵会破坏我在IE上的上传.为什么

Using a decoy breaks my upload on IE. Why?

本文关键字:IE 为什么 诱饵      更新时间:2023-09-26

我正在使用Valums AJAX Uploader,它工作得很好,即使在IE中。

当我试图使用一个诱饵来隐藏Valums标记时,问题出现了。

$('.control.addphoto:not(.controlactive)').live('click', function(){
    $('#upload input[type=file]').click();
});

所以,真正的输入是隐藏的,但是点击我的控件激活它。"选择文件"对话框在IE中显示得很好,但是一旦我点击确定,文件上传失败(它甚至没有到达服务器)。当我不使用诱饵时(即当我直接点击输入时),它工作得很好。

在Chrome和Firefox中一切正常。

为什么会发生这种情况?我不能理解,因为这只是一个诱饵,它调用的是实际的输入。有线索吗?有没有办法让诱饵更"透明"?

obs:刚刚发现诱饵在Opera上不起作用(不打开对话框)。同样,直接单击输入就可以了。这不应该是工作,因为我使用jquery(这应该是跨浏览器)?


编辑

  • Opera实际上不允许通过诱饵触发输入行为。

  • 使用Kevin B的替代方案,我已经能够解决我的问题。另一方面,我仍然不知道为什么IE会发生这种情况,为了了解情况,我将保留这个问题。

一个解决方案是使触发器元素不可见,但不隐藏,例如给它与它后面的元素相同的背景颜色。然后你可以把它放在"诱饵"的顶部,这样看起来你是在点击诱饵,而实际上你是在点击文件输入