我正在使用 hack 使文件输入在所有浏览器中显示一致。我正在使用这种技术。基本上,您将文件上传输入的不透明度设置为 0,并将其绝对定位在另一个样式化的输入之上(为了跨浏览器的一致性)。当用户点击“文件上传”区域时,其实是点击了下方的输入,但是由于上传区域的不透明度为零,所以还是触发了上传对话框。这个 hack 效果很好(在链接中阅读更多内容),但是,有一个主要问题:因为不透明度设置为 0,所以您看不到文件路径,这是让用户知道浏览按钮有效所必需的。
我正在寻找执行以下操作的 jquery 解决方案:当用户浏览文件时,jquery 会将文件名/路径存储在变量中,然后将该变量显示为另一个输入的(先前输入)值。也就是说,当用户选择一个文件时,文件名作为一个值显示在另一个输入中。
这是我的 HTML / CSS:
<div id="upload">
<input type="text" id="fakeUpload" value="Choose File">
<span class="file-upload">
<input type="file" name="file-upload" class="wpcf7-file" size="1" value="1">
</span>
</div>
#upload{position:relative; float:left; width:100%; cursor:pointer;}
#upload input#fakeUpload{position:absolute; top:0; left:0; display:block; font-size:15px; color:black; background:#f1f1f1; padding:7px 5%; width:90%!important; cursor:pointer; z-index:1;}
#career input[type="file"] {opacity: 0; position:absolute; top:0; left:0; z-index:2; text-align: right;}