提问者:小点点

超文本标记语言输入文件选择事件在选择相同文件时不触发


是否有机会检测用户为类型file元素的超文本标记语言输入所做的每个文件选择?

这个问题以前被问过很多次,但是如果用户再次选择相同的文件,通常建议的onChange事件不会触发。


共3个答案

匿名用户

在每个onclick事件上,将输入的值设置为null。这将重置输入的值,并触发onchange事件,即使选择了相同的路径。

var input = document.getElementsByTagName('input')[0];

input.onclick = function () {
  this.value = null;
};
  
input.onchange = function () {
  console.log(this.value);
};
<input type="file" value="C:\fakepath">

匿名用户

每次用户单击字段时,使用onClark事件清除目标输入的值。这确保了同一个文件也会触发onChange事件。为我工作:)

onInputClick = (event) => {
    event.target.value = ''
}

<input type="file" onChange={onFileChanged} onClick={onInputClick} />

使用打字脚本

onInputClick = ( event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {
    const element = event.target as HTMLInputElement
    element.value = ''
}

匿名用户

<form enctype='multipart/form-data'>
    <input onchange="alert(this.value); this.value=null; return false;" type='file'>
    <br>
    <input type='submit' value='Upload'>
</form>

这个。值=空仅适用于Chrome,Firefox只需返回false即可正常工作

这是一把小提琴