我正在使用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会发生这种情况,并且为了了解起见,我将继续公开这个问题。

最佳答案

一种解决方案是使触发器元素不可见,而不是隐藏,例如为其提供与背后元素相同的背景色。然后,您可以将其放置在“诱饵”的顶部,这样看起来就像您在诱饵上单击一样,而实际上是在单击文件输入。

关于javascript - 使用诱饵会破坏我在IE上的上传。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7809567/

10-11 14:59