我正在使用 VS2012 和 Javascript 开发 Metro 应用程序
我想重置我的文件输入的内容:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
我该怎么做?
我正在使用 VS2012 和 Javascript 开发 Metro 应用程序
我想重置我的文件输入的内容:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
我该怎么做?
@dhaval-marthak 在评论中发布的 jQuery 解决方案显然有效,但如果您查看实际的 jQuery 调用,很容易看出 jQuery 正在做什么,只需将value
属性设置为空字符串即可。因此,在“纯”JavaScript 中,它将是:
document.getElementById("uploadCaptureInputFile").value = "";
您需要包装<input type = “file”>
到<form>
标签中,然后您可以通过重置表单来重置输入:
onClick="this.form.reset()"
这是最好的解决方案:
input.value = ''
if(!/safari/i.test(navigator.userAgent)){
input.type = ''
input.type = 'file'
}
在这里的所有答案中,这是最快的解决方案。没有输入克隆,没有表格重置!
我在所有浏览器中检查过它(它甚至支持 IE8)。
如果您有以下情况:
<input type="file" id="fileControl">
然后就做:
$("#fileControl").val('');
重置文件控制。
另一种解决方案(不选择 HTML DOM 元素)
如果您在该输入上添加了“更改”事件侦听器,则可以在 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.');
}