Forms IE can';出于样式设置的目的,当文件隐藏时,不发送文件上载

Forms IE can';出于样式设置的目的,当文件隐藏时,不发送文件上载,forms,file,internet-explorer,upload,Forms,File,Internet Explorer,Upload,好吧,我被卡住了,所以我要提出另一个关于文件上传表单元素样式的问题 经过一些尝试,我终于(认为)我有它的工作,但然后像往常一样IE将开始抗议的人再次。问题是,我将使用下面的表单,它用css隐藏了真实的文件输入,因此它使用fileHiddenInput div将其替换为一个假的文件输入 html: <form enctype="multipart/form-data" method="post" name="uploadform" action = "">

好吧,我被卡住了,所以我要提出另一个关于文件上传表单元素样式的问题

经过一些尝试,我终于(认为)我有它的工作,但然后像往常一样IE将开始抗议的人再次。问题是,我将使用下面的表单,它用css隐藏了真实的文件输入,因此它使用fileHiddenInput div将其替换为一个假的文件输入

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>
/** file input **/
.fileHiddenInput {
    height: 0px;
    width: 0px; 
    overflow:hidden;
}
我将使用一些jquery发送表单,我也可以将代码放在这里。但是经过多次尝试和错误,我发现IE9不会发送文件输入,只要使用fileHiddenInput div使用css隐藏文件输入。当make时,我将通过删除fileHiddenInput div或使用css使其可见来使文件输入可见,然后表单按其应做的那样发送


有人知道或者找到了解决方法吗?

有几种隐藏策略可以尝试,一种是通过设置样式将元素从屏幕上移除

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

另一种方法是使用不透明控件覆盖文件输入元素。

Opacity 0 for element使其计为隐藏

希望这能帮助一些人-我在使用IE和selenium/watir获取file_field.set时遇到问题。问题是(:input=>“upload”)位于锚标记下。通过inspector查看时,我们看到下面的file_字段的不透明度设置为0。。这导致元素不可见错误

将不透明度设置为>0(在我们的示例中为0.01)允许web驱动程序与其交互,生成上载窗口并设置文件路径


这是用IE11在Win7上进行的测试,你给出的css似乎不起作用。。。我还将尝试其他方法来隐藏它,比如使用jquery。但IE9似乎不希望任何人隐藏文件输入。。。顺便说一句,你说的不透明控制到底是什么意思?我说的不透明控制是指没有透明背景的层。我有一种感觉,IE9可能会有严格的强制执行,以确保用户知道上传了哪些文件。作为替代方案,您是否考虑过使用SWFUpload,它可以实现您需要的功能,而无需黑客的麻烦。我只是没有通过一系列技术来隐藏文件输入(),但似乎都不起作用。我猜我只是想阻止你这么做。。。那么,使用SWFupload就没有其他选项了。谢谢你的时间和帮助,我真的很感激;)