是否有任何机会,以检测每一个文件选择一个HTML取得了用户input
类型的file
元素?
这被问过很多次,但通常建议onchange
如果用户再次选择相同的文件不会触发事件。
是否有任何机会,以检测每一个文件选择一个HTML取得了用户input
类型的file
元素?
这被问过很多次,但通常建议onchange
如果用户再次选择相同的文件不会触发事件。
设置的值input
到null
上各onclick
事件。 这将重置input
的值,并触发onchange
即使选择相同的路径的事件。
input.onclick = function () {
this.value = null;
};
input.onchange = function () {
alert(this.value);
};
这里有一个DEMO 。
注意:如果您的文件有“:\ fakepath \ C”为前缀这是正常的。 这是一个安全功能阻止的JavaScript知道文件的绝对路径。 该浏览器仍然知道它在内部。
<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的必要,Firefox会正常工作只是return false;
这里是一个FIDDLE
在这篇文章中,标题下的“使用表单输入选择”
http://www.html5rocks.com/en/tutorials/file/dndfiles/
<input type="file" id="files" name="files[]" multiple />
<script>
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// files is a FileList of File objects. List some properties.
var output = [];
for (var i = 0, f; f = files[i]; i++) {
// Code to execute for every file selected
}
// Code to execute after that
}
document.getElementById('files').addEventListener('change',
handleFileSelect,
false);
</script>
它增加了一个事件监听器“改变”,但我测试,它会触发即使选择相同的文件,而不是如果取消。
做你想做你的文件处理完成后successfully.just文件控件的值设置为空string.so的.change(文件加载后做的)总是会被调用,即使更改文件名或没有。 像例如,你可以做这个事情,工作对我来说就像魅力
$('#myFile').change(function () {
LoadFile("myFile");//function to do processing of file.
$('#myFile').val('');// set the value to empty of myfile control.
});
使用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 = ''
}