【问题标题】:CSS: How to hide file input but keep the filename?CSS:如何隐藏文件输入但保留文件名?
【发布时间】:2018-01-31 17:18:51
【问题描述】:

我想隐藏文件输入“选择文件”按钮,但我想保留文件名。我该怎么做?

<input
  name="upload"
  id="upload-input"
  placeholder="Select a file"
  ref="fileInput"
  type="file"
  required>

【问题讨论】:

标签: html css


【解决方案1】:

您可以将文件名保存到另一个 html 元素,然后像这样隐藏选择文件输入。

function getFileName()
{
var x = document.getElementById('upload-input')
x.style.visibility = 'collapse'
document.getElementById('fileName').innerHTML = x.value.split('\\').pop()
}
<input
  name="upload"
  id="upload-input"
  placeholder="Select a file"
  ref="fileInput"
  type="file"
  required 
  onchange="getFileName()"><span id="fileName"></span>

【讨论】:

  • 您可以使用 x.value.split('\\').pop() 作为文件名而不是路径
  • OP 没有用 javascript 标记的问题...。您的解决方案需要 javascript... 可能值得澄清一下 javascript 是否可以,和/或纯 HTML 是否可能/不可能/CSS。
  • 另外,如果 JS 是答案,那么这应该被关闭为重复 (stackoverflow.com/questions/35819391/…) 而不是发布新答案
【解决方案2】:

在这个地方添加一个新组件:

 <span id='upload-file-name'></span>

使用 JavaScript,先获取文件名

var em = document.getElementById("upload-input");
var fname = em.name;

隐藏文件上传输入框

em.style.display = 'none';

把文件名放到这个新组件中

document.getElementById("upload-file-name").innerHTML = fname;

【讨论】:

  • OP 没有用 javascript 标记的问题...。您的解决方案需要 javascript... 可能值得澄清一下 javascript 是否可以,和/或纯 HTML 是否可能/不可能/CSS。
  • 另外,如果 JS 是答案,那么这应该被关闭为重复 (stackoverflow.com/questions/35819391/…) 而不是发布新答案
  • @cale_b OP没有限制任何可能性。
  • 绝对是 OP 所做的:标签表明了所需的技术。这就是标签的用途。您不会对标记为 Ruby.... 的问题发布 PHP 答案。
猜你喜欢
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 2013-02-12
相关资源
最近更新 更多