用CSS和一些JS设置输入类型文件的样式,这样可以吗?

nk

我正在尝试做的是添加一个用于上载文件的按钮,该按钮可以设置样式,并向我显示所选文件的名称。

我进行了很多搜索,搜索得越多,发现的解决方案就越多。我发现,您不能直接设置输入的样式,因为您不能... :(。

最后,我从每种解决方案中都选择了一点,然后得出以下结论:

我在输入[type file]的标签中设置了跨度,并通过display:none;隐藏了输入。

现在,我可以根据需要设置跨度的样式,然后单击以调用输入。在小JS末尾,获取输入的值(选择的文件的名称),并在样式按钮上显示它的跨接文本。

但看看自己:

#input-file {
    display: none;
    }

.upload-btn {

    display: block;
    text-align: center;
    margin: 20px auto 20px;
    width: 50%;
    height: 30px;
    background-color: #fcff7f;
    line-height: 30px;

    }

.upload-btn:hover {
    background-color: #c39d5a;
    color: white;
    cursor: pointer;
    }
<label class="upload-btn">
  <input type="file" id="input-file" onchange="changeText()" />
  <span id="selectedFileName">Browse</span>
</label>


<script type="text/javascript">
  function changeText() {
    var y = document.getElementById("input-file").value;
    document.getElementById("selectedFileName").innerHTML = y;
  }
</script>

我想知道的是,这有什么问题?就我的理解而言,它非常简单,如此之简单,以至于我不明白为什么“我”却无法在互联网上找到所有的解决方案。他们总是尝试使用带有不透明性等的伪造输入。

因此,请有经验的人可以告诉我是否可以这样使用它,还是必须更改它?要什么?

谢谢;),以及许多不好的英语借口。

拉胡尔·德赛(Rahul Desai)

由于安全原因,此功能在浏览器中不可用。

查看此说明:https : //stackoverflow.com/a/15201258/586051

仅Firefox浏览器允许。请在Firefox中参考以下示例。

编辑:您可以通过以下方式获取所选文件的文件名:

EDIT2:以下代码段演示了文件上传按钮的样式。在这里,我们实际上是在伪造它,但最终用户不会知道它。;)

EDIT3:fullPath在注释中增加了的价值

EDIT4:<div>在HTML中添加了包装器

document.getElementById("customButton").addEventListener("click", function(){
  document.getElementById("fileUpload").click();  // trigger the click of actual file upload button
});

document.getElementById("fileUpload").addEventListener("change", function(){
  var fullPath = this.value; // fetched value = C:\fakepath\fileName.extension
  var fileName = fullPath.split(/(\\|\/)/g).pop();  // fetch the file name
  document.getElementById("fileName").innerHTML = fileName;  // display the file name
}, false);
#fileUpload{
  display: none; /* do not display the actual file upload button */
}

#customButton{  /* style the fake upload button */
  background: yellow;
  border: 1px solid red;
}
<div>
  <input type="file" id="fileUpload"> <!-- actual file upload button -->
  <button id="customButton">My Custom Button</button>  <!-- fake file upload button which can be used for styling ;) -->
  <span id="fileName"></span>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

flutter + protobuf +(一些加密算法),这样可以吗?

来自分类Dev

一些环境变量可以访问,而其他一些不可以吗?

来自分类Dev

用Formatter写入文件可以吗?

来自分类Dev

为什么加载一些CSS和JS文件花费的时间太长?

来自分类Dev

如何使用CSS设置输入类型文件的样式

来自分类Dev

在magick和输入文件名之间可以提供选项的imagemagick命令的一些示例是什么

来自分类Dev

在Django代码中添加html文件,css文件,一些javascript文件和一些图像?

来自分类Dev

我可以用数据框一次替换一些值吗?

来自分类Dev

WCF和REST应用程序在同一端口上使用不同的端点,这样可以吗?

来自分类Dev

我的css样式中只有一些出现在我的html文件中

来自分类Dev

在C#中,我可以在Restsharp中设置一些httpclienthandler属性吗?

来自分类Dev

这样创建PHP变量可以吗?

来自分类Dev

我可以使用awk执行一些数字或字符串操作,而无需指定文件作为输入吗?

来自分类Dev

对一组匿名类型进行Sum():可以吗?

来自分类Dev

我可以在CSS中总结一些时间值吗?

来自分类Dev

我可以安全地存储和显示带有AES加密文件以及一些简单bash脚本的主密码文件吗?

来自分类Dev

有一些生成器可以生成角度分量api文件吗?

来自分类Dev

在bash中运行php文件的内容,可以执行一些命令吗?

来自分类Dev

在通过管理面板上传文件后,我可以告诉 Django 运行一些函数吗?

来自分类Dev

有人可以帮助澄清整数对象和其他一些事情吗

来自分类Dev

是否可以在一个 javascript 文件中添加来自 Node.JS 的库以及来自 angular.js 和 react.js 的一些库?

来自分类Dev

用CSS对类型行的最后一个样式进行样式设置

来自分类Dev

必须输入一些评论吗?流星

来自分类Dev

Matlab输入Ctrl + c后,我们可以执行一些代码或调用一个函数吗?

来自分类Dev

通过jQuery输入名称后,设置一些文本

来自分类Dev

这样在Heroku上启动Node.js应用程序可以吗?

来自分类Dev

我可以在SonarQube中编辑一些规则吗?

来自分类Dev

可以在Tcp连接中分隔一些数据吗?

来自分类Dev

可以花一些假的mov eax,esi吗?

Related 相关文章

  1. 1

    flutter + protobuf +(一些加密算法),这样可以吗?

  2. 2

    一些环境变量可以访问,而其他一些不可以吗?

  3. 3

    用Formatter写入文件可以吗?

  4. 4

    为什么加载一些CSS和JS文件花费的时间太长?

  5. 5

    如何使用CSS设置输入类型文件的样式

  6. 6

    在magick和输入文件名之间可以提供选项的imagemagick命令的一些示例是什么

  7. 7

    在Django代码中添加html文件,css文件,一些javascript文件和一些图像?

  8. 8

    我可以用数据框一次替换一些值吗?

  9. 9

    WCF和REST应用程序在同一端口上使用不同的端点,这样可以吗?

  10. 10

    我的css样式中只有一些出现在我的html文件中

  11. 11

    在C#中,我可以在Restsharp中设置一些httpclienthandler属性吗?

  12. 12

    这样创建PHP变量可以吗?

  13. 13

    我可以使用awk执行一些数字或字符串操作,而无需指定文件作为输入吗?

  14. 14

    对一组匿名类型进行Sum():可以吗?

  15. 15

    我可以在CSS中总结一些时间值吗?

  16. 16

    我可以安全地存储和显示带有AES加密文件以及一些简单bash脚本的主密码文件吗?

  17. 17

    有一些生成器可以生成角度分量api文件吗?

  18. 18

    在bash中运行php文件的内容,可以执行一些命令吗?

  19. 19

    在通过管理面板上传文件后,我可以告诉 Django 运行一些函数吗?

  20. 20

    有人可以帮助澄清整数对象和其他一些事情吗

  21. 21

    是否可以在一个 javascript 文件中添加来自 Node.JS 的库以及来自 angular.js 和 react.js 的一些库?

  22. 22

    用CSS对类型行的最后一个样式进行样式设置

  23. 23

    必须输入一些评论吗?流星

  24. 24

    Matlab输入Ctrl + c后,我们可以执行一些代码或调用一个函数吗?

  25. 25

    通过jQuery输入名称后,设置一些文本

  26. 26

    这样在Heroku上启动Node.js应用程序可以吗?

  27. 27

    我可以在SonarQube中编辑一些规则吗?

  28. 28

    可以在Tcp连接中分隔一些数据吗?

  29. 29

    可以花一些假的mov eax,esi吗?

热门标签

归档