有没有可能检测到用户为file
input
类型的HTML选择的每个文件?
这个问题以前被问过很多次,但是如果用户再次选择相同的文件,通常建议的onchange
事件不会触发。
发布于 2012-08-24 12:04:39
在每个onclick
事件中将input
的值设置为null
。这将重置input
的值并触发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">
注意:如果您的文件以“C:\fakepath”为前缀,这是正常的。这是一个安全特性,可以防止JavaScript知道文件的绝对路径。浏览器仍然可以在内部识别它。
发布于 2019-02-11 22:45:33
每次用户单击字段时,使用onClick事件清除目标输入的值。这确保了同一文件也会触发onChange事件。对我很有效:)
onInputClick = (event) => {
event.target.value = ''
}
<input type="file" onChange={onFileChanged} onClick={onInputClick} />
使用TypeScript
onInputClick = ( event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {
const element = event.target as HTMLInputElement
element.value = ''
}
发布于 2014-09-20 20:52:48
<form enctype='multipart/form-data'>
<input onchange="alert(this.value); this.value=null; return false;" type='file'>
<br>
<input type='submit' value='Upload'>
</form>
this.value=null;
只在Chrome上是必需的,火狐在return false;
上就可以很好地工作
这是一个FIDDLE
https://stackoverflow.com/questions/12030686
复制相似问题