javascript - css 隐藏 "Choose File"按钮但在选择后显示文件

标签 javascript jquery html css file

我想为图片上传制作自定义按钮。我可以通过下面的演示获得此结果:

https://jsfiddle.net/algometrix/fgrbyo4z/

但是我如何显示之后选择的文件名?或者如果可能的话,甚至是图像的缩略图?就像我从弹出的窗口中选择一个文件后,我希望它在我选择它后在页面上显示“文件名”。

Javascript - 如果有人可以在该领域提供帮助,jQuery 在这里完全是一个选择。

HTML

<div>
  <div style="display:block;text-align:center;margin-top:20%;">
    <label for="files"> <span class="btn">Select Image</span></label>
    <input style="visibility: hidden; position: absolute;" id="files" class="form-control" type="file" name="files">

  </div>

</div>

CSS

.btn {
  font-family: Arial;
  color: #ffffff;
  font-size: 20px;
  background: #3f88b8;
  padding: 10px 20px 10px 20px;
  text-decoration: none;
}

.btn:hover {
  background: #3cb0fd;
  background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db);
  background-image: -moz-linear-gradient(top, #3cb0fd, #3498db);
  background-image: -ms-linear-gradient(top, #3cb0fd, #3498db);
  background-image: -o-linear-gradient(top, #3cb0fd, #3498db);
  background-image: linear-gradient(to bottom, #3cb0fd, #3498db);
  text-decoration: none;
}

最佳答案

通过添加 javascript,我们可以只观察输入的 change 事件,并将名称放在页面上。请注意这些微小的 HTML 更改:

<div class="file-upload">
  <label for="upload-1" class="btn">Upload</label>
  <input type="file" id="upload-1">
  <p class="file-name">Please select a file.</p>
</div>

使用这个 jQuery:

jQuery(function($) {
  $('input[type="file"]').change(function() {
    if ($(this).val()) {
         var filename = $(this).val();
         $(this).closest('.file-upload').find('.file-name').html(filename);
    }
  });
});

Working Fiddle

关于javascript - css 隐藏 "Choose File"按钮但在选择后显示文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35819391/

相关文章:

javascript - 为什么 Flow 无法使用方法参数的默认值推断类型

jQuery Mobile 1.3.1 taphold 事件多次触发

javascript - jquery从选择中加载内容

html - 仅使用CSS即可实现点击事件

javascript - HTML.innerHTML 与 Jquery.html() - Javascript 执行

javascript - 如何使用javascript将jsp文件中的数据传递给多个servlet?

javascript - 如何使用过滤器从 ng-repeat 中将数组中的对象分组?

javascript - 触发从 websocket 检索的 javascript

javascript - knockoutJS 中的验证码不起作用

javascript - 要求浏览器探测另一个站点上的数据