是否有机会检测用户为文件元素类型的HTML输入所做的每个文件选择?
这个问题以前被问过很多次,但是如果用户再次选择相同的文件,通常建议的onchange事件不会触发。
是否有机会检测用户为文件元素类型的HTML输入所做的每个文件选择?
这个问题以前被问过很多次,但是如果用户再次选择相同的文件,通常建议的onchange事件不会触发。
当前回答
在每个onclick事件上将输入值设置为空。这将重置输入的值并触发onchange事件,即使选择了相同的路径。
var input = document.getElementsByTagName('input')[0]; 输入。Onclick = function () { 这一点。Value = null; }; 输入。Onchange = function () { console.log (this.value); }; <input type="file" value="C:\fakepath">
注意:如果你的文件前缀是'C:\fakepath',这是正常的。这是一个安全特性,可以防止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 =零;只是必要的Chrome, Firefox将工作良好只是返回false;
这是一把小提琴
<input #myInput type="file" id="imgFile" (click)="$event.target.value=null"
(change)="detectUploadedImage($event)" accept="image/*" />
handleChange({target}) {
const files = target.files
target.value = ''
}
清除输入的第0个索引的值对我来说很有用。请尝试下面的代码,希望这将工作(AngularJs)。
scope.onClick = function() {
input[0].value = "";
input.click();
};
在每个onclick事件上将输入值设置为空。这将重置输入的值并触发onchange事件,即使选择了相同的路径。
var input = document.getElementsByTagName('input')[0]; 输入。Onclick = function () { 这一点。Value = null; }; 输入。Onchange = function () { console.log (this.value); }; <input type="file" value="C:\fakepath">
注意:如果你的文件前缀是'C:\fakepath',这是正常的。这是一个安全特性,可以防止JavaScript知道文件的绝对路径。浏览器内部仍然知道它。