当其隐藏造型的目的IE不能发送文件上传(IE can't send file upload

2019-09-19 06:49发布

好了,我非常卡住,所以我打开另一个问题有关的样式文件的文件上传表单元素。

一些tryings后我将最终(想法),我有工作,但然后像往常一样IE将再次开始抗议的。 关键是,我将有如下形式,它隐藏了真正的文件输入与CSS,所以它有一个假的代替它,使用fileHiddenInput股利。

HTML:

<form enctype="multipart/form-data" method="post" name="uploadform" action = "">                    
  <div class="input-append">
    <input type="text" id = "appendedInputButtons" class="span2" name="fileuploadtext"><input type="button" id="upbutton" class="btn" value="Select"><input type="submit" name="upload" value="uploaden" class="btn">
  </div>
  **<div class="fileHiddenInput"><input id="upfile" type="file" name="file" value="upload" /></div>**
</form>

CSS:

/** file input **/
.fileHiddenInput {
    height: 0px;
    width: 0px; 
    overflow:hidden;
}

我将使用一些jQuery的发送形式,我也放在这里的代码。 但是,许多试验和错误之后,我会发现,IE9将不只要发送文件的输入,如果保留隐藏文件输入与使用fileHiddenInput DIV + CSS。 当make我会让文件输入可见通过移除fileHiddenInput股利或使其可见使用CSS,表单只是得到发送,它应该做的。

有谁知道或有没有人已经找到了解决方法吗?

Answer 1:

隐藏您可以尝试的一些战略,一个是通过设置样式像把元素关闭screena

position: absolute; z-index: 19999; top: -1000px; left: -1000px;

另一种方式是覆盖所述文件输入元件有不透明控制。



Answer 2:

为元素不透明度0造成它算作是隐藏的。

希望这能帮助别人 - 我是有越来越file_field.set与IE和硒/的Watir工作的问题。 的问题是,(:输入=>“上传”)是一个锚定标记之下。 当它通过检查看,我们看到的是,file_field的透明度下被设置为0 ..这是引起元素不可见的错误。

设置不透明度为> 0(0.01在我们的情况下工作),允许网络驱动程序与它进行交互和产卵上传窗口,并设置文件路径。

这是Win7上测试与IE11



文章来源: IE can't send file upload when its hidden for styling purposes