是否有机会检测用户为文件元素类型的HTML输入所做的每个文件选择?
这个问题以前被问过很多次,但是如果用户再次选择相同的文件,通常建议的onchange事件不会触发。
是否有机会检测用户为文件元素类型的HTML输入所做的每个文件选择?
这个问题以前被问过很多次,但是如果用户再次选择相同的文件,通常建议的onchange事件不会触发。
当前回答
清除输入的第0个索引的值对我来说很有用。请尝试下面的代码,希望这将工作(AngularJs)。
scope.onClick = function() {
input[0].value = "";
input.click();
};
其他回答
在本文中,在“使用表单输入进行选择”的标题下
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>
它添加了一个事件监听器的“改变”,但我测试了它,它触发即使你选择相同的文件,而不是如果你取消。
如果你使用的是Angular,双向绑定对我来说是有效的。
这是我的HMTL
<input type="file" #upload name="upload" [(ngModel)]="inputValue"(change)='fileEvent($event)'/>
和TS . .
@ViewChild('upload') uploadBtn: HTMLElement;
fileEvent(e: any){
//file upload part...
this.inputValue = "";
}
<input #myInput type="file" id="imgFile" (click)="$event.target.value=null"
(change)="detectUploadedImage($event)" accept="image/*" />
清除输入的第0个索引的值对我来说很有用。请尝试下面的代码,希望这将工作(AngularJs)。
scope.onClick = function() {
input[0].value = "";
input.click();
};
handleChange({target}) {
const files = target.files
target.value = ''
}