【问题标题】:Disable <input type="file"> passing its content禁用 <input type="file"> 传递其内容
【发布时间】:2020-09-07 18:53:27
【问题描述】:

我有一个&lt;form&gt;,其中包含许多字段和一个&lt;input type="file"&gt;。每个字段都应该启用下一个并防止用户回滚,除非用户单击取消按钮并从头开始。就像在这个方案中一样:

input 1 -> ENABLE
input 2 -> disable
input 3 (type="file") -> disable
input 4 -> disable

选择后:

input 1 -> disable
input 2 -> ENABLE
input 3 (type="file") -> disable
input 4 -> disable

问题是当用户在上面的输入 3 中选择要上传的文件时,该字段应变为 disabledreadonly,但如果禁用,则在提交表单时不会将文件传递给我的控制器,如果是只读的似乎该字段实际上仍然可以选择并且可以正常工作。

有没有办法阻止&lt;input type="file"&gt; 并将其值传递给我的控制器?

【问题讨论】:

  • 使用 CSS 使它看起来像被禁用。否则,这是默认的 HTML 表单行为。
  • @AnujShrestha mmm.... 好点子,你知道如何防止用户与“bycssfakedisabled”输入交互吗?
  • 我不擅长 CSS,所以我帮不了你。

标签: html laravel input upload input-type-file


【解决方案1】:

在不更改上传方法的情况下,我想到最简单的方法是在选择文件输入后隐藏文件输入,但我认为这不是一个好主意,因为用户可能选择了错误的文件。

我建议通过 ajax 或在选择时使用按钮触发器进行上传,获取上传路径并将其存储到隐藏的输入中,然后隐藏文件输入,并可能显示上传的文件预览(图像或文件名等)

【讨论】:

  • 据我所知,您不能将文件传递给隐藏输入...我错了吗?
  • 不,你没有错。您不能将文件传递给隐藏,但如果您在选择后立即上传,则可以传递上传结果。这就是我的建议
猜你喜欢
  • 1970-01-01
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 2016-05-25
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多