是否有机会检测用户为类型file
元素的超文本标记语言输入
所做的每个文件选择?
这个问题以前被问过很多次,但是如果用户再次选择相同的文件,通常建议的onChange
事件不会触发。
在每个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即可正常工作代码>
这是一把小提琴