我正在用VS2012和Javascript开发一个地铁应用程序
我想重置我的文件输入的内容:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
我该怎么做呢?
我正在用VS2012和Javascript开发一个地铁应用程序
我想重置我的文件输入的内容:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
我该怎么做呢?
当前回答
只使用:
$('input[type=file]').val('');
其他回答
我在这里错过了另一个解决方案(2021年): 我使用FileList与文件输入交互。
因为没有办法创建FileList对象,所以我使用DataTransfer,它带来了干净的FilleList。
我用:
file_input.files=new DataTransfer().files
在我的例子中,这非常适合,因为我只通过FileList与封装的文件输入元素进行交互。
在IE 10中,我解决了这个问题:
var file = document.getElementById("file-input");
file.removeAttribute('value');
file.parentNode.replaceChild(file.cloneNode(true),file);
地点:
<input accept="image/*" onchange="angular.element(this).scope().uploadFile(this)" id="file-input" type="file"/>
另一种解决方案(不选择HTML DOM元素)
如果你在输入中添加了'change'事件监听器,那么在javascript代码中你可以调用(对于某些特定的条件):
event.target.value = '';
例如在HTML中:
<input type="file" onChange="onChangeFunction(event)">
在javascript中:
onChangeFunction(event) {
let fileList = event.target.files;
let file = fileList[0];
let extension = file.name.match(/(?<=\.)\w+$/g)[0].toLowerCase(); // assuming that this file has any extension
if (extension === 'jpg') {
alert('Good file extension!');
}
else {
event.target.value = '';
alert('Wrong file extension! File input is cleared.');
}
只使用:
$('input[type=file]').val('');
@dhaval-marthak在评论中发布的jQuery解决方案显然是有效的,但如果你看看实际的jQuery调用,就很容易看出jQuery在做什么,只是将value属性设置为空字符串。所以在“纯”JavaScript中,它将是:
document.getElementById("uploadCaptureInputFile").value = "";