我正在使用 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/