Estou desenvolvendo um aplicativo de metrô com VS2012 e Javascript
Quero redefinir o conteúdo da minha entrada de arquivo:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
Como devo fazer isso?
Estou desenvolvendo um aplicativo de metrô com VS2012 e Javascript
Quero redefinir o conteúdo da minha entrada de arquivo:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
Como devo fazer isso?
inputElement.value = ""
faz o truque muito bem sem recorrer à clonagem ou embalagem como sugerido. Trabalha em CH (46), IE (11) e FF (41)Respostas:
A solução jQuery que o @ dhaval-marthak postou nos comentários obviamente funciona, mas se você observar a chamada real do jQuery, é muito fácil ver o que o jQuery está fazendo, basta definir o
value
atributo como uma string vazia. Assim, em JavaScript "puro", seria:fonte
$(#myfileselector).trigger('fileselect', [1, ""]);
Você precisa envolver
<input type = “file”>
-se para<form>
tags e, em seguida, você pode redefinir a entrada redefinindo seu formulário:fonte
$("form").get(0).reset();
. O.get(0)
retornará o elemento de formulário real para que você possa usar areset()
funçãoEssa é a melhor solução:
De todas as respostas aqui, esta é a solução mais rápida. Sem clone de entrada, sem redefinição de formulário!
Eu verifiquei em todos os navegadores (ele ainda tem suporte ao IE8).
fonte
input.type
também? Definir apenas o valor para''
está dando o resultado esperado.onchange
evento no MS Edge?Caso você tenha o seguinte:
então faça:
para redefinir o controle de arquivo.
fonte
inputFileEl.value = '';
Você pode cloná-lo e substituí-lo por si mesmo, com todos os eventos ainda anexados:
e
Obrigado: Css-tricks.com
fonte
value
mesmo em outras respostas parece muito mais direto do que manipular o DOM.Outra solução (sem selecionar elementos HTML DOM)
Se você adicionou o ouvinte de evento 'change' a essa entrada, no código javascript você pode chamar (para algumas condições especificadas):
Por exemplo, em HTML:
E em javascript:
fonte
.
na frente da extensão do arquivo.SOLUÇÃO
O código a seguir funcionou para mim com o jQuery. Ele funciona em todos os navegadores e permite preservar eventos e propriedades personalizadas.
DEMO
Veja este jsFiddle para código e demonstração.
LINKS
Consulte Como redefinir a entrada de arquivo com JavaScript para obter mais informações.
fonte
<input type="file">
com ID específico.Redefinir um botão de upload de arquivo é tão fácil usando JavaScript puro !
Existem poucas maneiras de fazer isso, mas a maneira simples e direta, que está funcionando bem em muitos navegadores, está alterando o valor arquivado para nada. Dessa forma, o upload arquivado é redefinido. Também tente usar javascript puro em vez de qualquer estrutura. Criei o código abaixo, basta conferir (ES6):
fonte
Particularmente para Angular
Funcionará, mas se você usar Angular, ele dirá "O valor da propriedade 'não existe no tipo' HTMLElement'.any"
document.getElementById () retorna o tipo HTMLElement que não contém uma propriedade value. Então, coloque-o em HTMLInputElement
EXTRA: -
No entanto, não devemos usar a manipulação do DOM (document.xyz ()) em angular.
Para fazer isso, o angular forneceu @VIewChild, @ViewChildren, etc., que são document.querySelector (), document.queryselectorAll (), respectivamente.
Até eu não li. Melhor seguir os blogs de especialistas
Passe por este link1 , link2
fonte
Eu uso para vuejs
fonte
O arquivo de entrada de redefinição está em um único
$('input[type=file]').val(null);
Se você ligar, redefina o arquivo em outro campo do formulário ou carregue o formulário com ajax.
Este exemplo é aplicável
seletor, por exemplo, é
$('input[type=text]')
ou qualquer elemento do formulárioevento
click
,change
ou qualquer eventofonte
Com o IE 10 , resolvi o problema com:
Onde :
fonte
fonte
Existem muitas abordagens e vou sugerir que você vá com o anexo ref à entrada.
para limpar o valor após o envio.
fonte
Apenas use:
fonte
Com angular, você pode criar uma variável de modelo e definir o valor como
null
Ou você pode criar um método para redefinir assim
component.ts
modelo
demo stackblitz
fonte
Você não pode redefinir isso, pois é um arquivo somente leitura. você pode cloná-lo para solucionar o problema.
fonte
Você deve tentar o seguinte:
fonte
Isso poderia ser feito assim
fonte
Minha melhor solução
fonte
solução jQuery:
fonte
on change
evento da entrada do arquivo é acionado, o valor é limpo. O tipo de entrada é redefinido de nenhum para o arquivo.Eu enfrentei o problema com o ng2-file-upload para angular. Se você está procurando a solução em angular, consulte o código abaixo
HTML:
<input type="file" name="myfile"
#activeFrameinputFileng2FileSelect [uploader]="frameUploader" (change)="frameUploader.uploadAll()" />
componente
import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';
@ViewChild('
activeFrameinputFile')
InputFrameVariable: ElementRef;
this.frameUploader.onSuccessItem = (item, response, status, headers) => {
};
fonte
fonte
Se você possui vários arquivos em seu formulário, mas deseja apenas que um deles seja redefinido:
se você usar boostrap, jquery, filestyle para exibir o formulário do arquivo de entrada:
fonte
fonte
Também funciona para controles dinâmicos.
Javascript
JQuery
fonte
fonte