我正在用VS2012和Javascript开发一个地铁应用程序

我想重置我的文件输入的内容:

<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />

我该怎么做呢?


当前回答

特别是对于Angular来说

document.getElementById('uploadFile').value = "";

会工作,但是如果你使用Angular呢 它会说“属性‘value’在类型‘HTMLElement’.any上不存在”

document.getElementById()返回不包含value属性的HTMLElement类型。因此,将它转换为HTMLInputElement

(<HTMLInputElement>document.getElementById('uploadFile')).value = "";

额外的:-

然而,我们不应该在angular中使用DOM操作(document.xyz())。

为此,angular提供了@ViewChild、@ViewChildren等,分别是document.querySelector()、document.queryselectorAll()。

连我都没读过。最好关注专家的博客

通过这个link1和link2

其他回答

在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"/>

可以这样做

var inputfile= $('#uploadCaptureInputFile') $('#reset').on('click',function(){ inputfile.replaceWith(inputfile.val('').clone(true)); }) <script src=“https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js”></script> <input type=“file” id=“uploadCaptureInputFile” class=“win-content colors” accept=“image/*” /> <a href=“” id=“reset”>重置</a>

我在ng2-file-upload中遇到过angular的问题。如果你正在寻找angular的解决方案,请参考下面的代码

HTML:

<输入type=“文件”/>

组件

import {Component, OnInit, ElementRef, ViewChild} from @angular/core;

@ViewChild (activeFrameinputFile) InputFrameVariable: ElementRef;

this.frameUploader.onSuccessItem =(项目,响应,状态,头)=> {

`this.`**InputFrameVariable**`.nativeElement.value = '';`

};

你需要将<input type = " file " >包装成<form>标签,然后你可以通过重置你的表单来重置输入:

onClick="this.form.reset()"

如果你的表单中有几个文件,但只想重置其中一个:

如果你使用boostrap, jquery, filstyle来显示输入文件的形式:

$("#"+idInput).filestyle('clear');