【问题标题】:Hitting 'Cancel' during file upload in Chrome clears value在 Chrome 中上传文件期间点击“取消”会清除值
【发布时间】:2013-07-27 04:47:45
【问题描述】:

我正在使用简单的 html type="file" 输入,但我在 Chrome 中遇到了问题。具体来说,当您浏览并选择一个文件时,它会保存该值。但是,如果您重新浏览,然后按取消,它将清除该值。

html 很简单:

<input type="file">

这是一个简单的小提琴-http://jsfiddle.net/78ghn/

这在其他浏览器中不会发生——有没有办法强制 Chrome 保留该值??

【问题讨论】:

标签: javascript html google-chrome file-upload input


【解决方案1】:

function f()
{
  document.getElementById("b").appendChild(document.getElementById("a"));
  document.getElementById("d").innerHTML = document.getElementById("c").innerHTML
  document.getElementById("alert").innerHTML = 'Your last file was '.concat(document.getElementById("b").lastChild.value.slice(12)) 
}
function g()
{
  if(document.getElementById("b").lastChild.value)
  {
  	document.write("You have submitted ".concat(document.getElementById("b").lastChild.value.slice(12)));
  }
  else
  {
  	document.write("You have submitted nothing.");
  }
}
#a
{
  opacity: 0;
  width: 100%;
  height: 100%;
}
#c
{
  display: none;
}
#d
{
  width: 100%;
  height: 100%;
}
#e
{
  background-color: green;
  border: 2px solid black;
  color: white;
  font-size: 16pt;
  width: 180px;
  height: 90px;
}
#f
{
  position: relative;
  left: 25%;
  bottom: 70%;
}
<form>
  <div id='e'>
    <span id='d'>
      <input type="file" onchange='f();' id='a'>
    </span>
    <span id='f'>Select File</span>
  </div>
  <input type='button' value='Submit' onclick='g();'>
</form>
<span id='alert'>You have chosen no files.</span>
<ul id='b'>
</ul>
<form id='c'>
  <input type="file" onchange='f();' id='a'>
</form>

我无法为此找到本机实现,因此我尝试了自己的解决方法。它从自定义 CSS 按钮覆盖中获取输入,然后将实际的 input 元素添加到列表中并用空元素替换它。读取并显示该值,就像使用普通 input 一样。它不包括在内,但提交它需要将原始 inputul 的最后一个元素和 id='b')移动到 form 并通过 JavaScript 提交。它不是最佳的,但它确实有效。

【讨论】:

    猜你喜欢
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2018-03-22
    相关资源
    最近更新 更多