javascript - 使用诱饵会破坏我在 IE 上的上传。为什么?

标签 javascript jquery html ajax upload

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

相关文章:

html - 必填字段星号未显示在同一行

html - NSURLRequest/URLWithString 未加载整个网页文本

javascript - 有人可以用简单的英语解释迭代参数在 sankeyNetwork() 中的含义吗?

javascript - 从 jQuery.get() 返回响应文本

javascript - 嵌入和 ng-bind : how to render sub-directives?

javascript - jQuery 如果 data-id 元素 hasClass 不起作用

javascript - 如何使用<audio>标签html5再现声音序列

javascript - Jquery - 可点击对象上的可点击对象

javascript - 调用重置但在 FORM 之外?

html - Angular 4 ng-selected 不工作