是否有机会检测到用户为 HTML input
类型为 file
元素所做的每个文件选择?
这个问题之前被问过很多次,但是如果用户再次选择相同的文件,通常建议的 onchange
事件不会触发。
原文由 dronus 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否有机会检测到用户为 HTML input
类型为 file
元素所做的每个文件选择?
这个问题之前被问过很多次,但是如果用户再次选择相同的文件,通常建议的 onchange
事件不会触发。
原文由 dronus 发布,翻译遵循 CC BY-SA 4.0 许可协议
每次用户单击字段时,使用 onClick 事件清除目标输入的值。这确保了同一文件的 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 = ''
}
原文由 Rosy Shrestha 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
在每个
onclick
事件上将null
的值设置为input
。即使选择了相同的路径,这也会重置input
的值并触发onchange
事件。注意:如果您的文件带有’C:\fakepath’前缀,这是正常的。这是一项安全功能,可防止 JavaScript 知道文件的绝对路径。浏览器仍然在内部知道它。