como redefinir

Estou desenvolvendo um aplicativo de metrô com VS2012 e Javascript

Quero redefinir o conteúdo da input do meu arquivo:

 

Como devo fazer isso?

A solução jQuery que @ dhaval-marthak postou nos comentários obviamente funciona, mas se você olhar para a chamada real do jQuery, é muito fácil ver o que o jQuery está fazendo, apenas configurando o atributo value para uma string vazia. Então, em JavaScript “puro” seria:

 document.getElementById("uploadCaptureInputFile").value = ""; 

Você precisa agrupar em

tags e, em seguida, você pode redefinir a input redefinindo seu formulário:

 onClick="this.form.reset()" 

Essa é a melhor solução:

 input.value = '' if(!/safari/i.test(navigator.userAgent)){ input.type = '' input.type = 'file' } 

De todas as respostas aqui, esta é a solução mais rápida. Nenhum clone de input, nenhuma redefinição de formulário!

Eu verifiquei em todos os navegadores (ele ainda tem suporte a IE8).

Você pode simplesmente cloná-lo e substituí-lo por si mesmo, com todos os events ainda anexados:

  

e

 var input = $("#control"); function something_happens() { input.replaceWith(input.val('').clone(true)); }; 

Obrigado: Css-tricks.com

Caso você tenha o seguinte:

  

então faça:

 $("#fileControl").val(''); 

para redefinir o controle de arquivos.

Outra solução (sem selecionar elementos HTML DOM)

Se você adicionou o listener de evento ‘change’ nessa input, então, no código javascript, você pode chamar (para algumas condições especificadas):

 event.target.value = ''; 

Por exemplo, em HTML:

  

E em 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.'); } 

SOLUÇÃO

O código a seguir funcionou para mim com o jQuery. Ele funciona em todos os navegadores e permite preservar events e propriedades personalizadas.

 var $el = $('#uploadCaptureInputFile'); $el.wrap('
').closest('form').get(0).reset(); $el.unwrap();

DEMO

Veja este jsFiddle para código e demonstração.

LINKS

Consulte Como redefinir a input de arquivo com JavaScript para mais informações.

Redefinir um botão de upload de arquivo é tão fácil usando JavaScript puro !

Existem algumas maneiras de fazê-lo, mas a maneira correta que está funcionando bem em muitos navegadores está mudando o valor arquivado para nada, assim o upload do arquivo é redefinido, também tente usar o javascript puro ao invés de qualquer framework, eu criei o código abaixo, apenas confira (ES6):

 function resetFile() { const file = document.querySelector('.file'); file.value = ''; } 
   

Com o IE 10 , resolvi o problema com:

  var file = document.getElementById("file-input"); file.removeAttribute('value'); file.parentNode.replaceChild(file.cloneNode(true),file); 

Onde :

  

O arquivo de input de redefinição é muito simples

$('input[type=file]').val(null);

Se você ligar redefinir o arquivo em alterar outro campo do formulário ou carregar o formulário com ajax.

Este exemplo é aplicável

selector por exemplo é $('input[type=text]') ou qualquer elemento do formulário

click evento , change ou qualquer evento

 $('body').delegate('event', 'selector', function(){ $('input[type=file]').val(null) ; }); 

Apenas use:

 $('input[type=file]').val(''); 

Você não pode redefinir isso, pois é um arquivo somente para leitura. você pode cloná-lo para solucionar o problema.

Você deveria tentar isto:

 $("#uploadCaptureInputFile").val(''); 

solução jQuery:

  $('input').on('change',function(){ $(this).get(0).value = ''; $(this).get(0).type = ''; $(this).get(0).type = 'file'; }); 

Eu uso para vuejs

   this.$refs.fileref.value = '' 

Se você tiver vários arquivos em seu formulário, mas quiser que apenas um deles seja redefinido:

se você usar boostrap, jquery, filestyle para exibir o formulário de arquivo de input:

 $("#"+idInput).filestyle('clear'); 
 var fileInput = $('#uploadCaptureInputFile'); fileInput.replaceWith(fileInput.val('').clone(true)); 

Funciona também para controles dynamics.

Javascript

  function FileValidate(object) { if ((object.files[0].size / 1024 / 1024) > 1) { //greater than 1 MB $(object).val(''); } } 

JQuery

  $(document).ready(function () { $('.UpoloadFileSize').bind('change', function () { if ((this.files[0].size / 1024000) > 1.5) { //greater than 1.5 MB $(this).val(''); alert('Size exceeded !!'); } }); }); 
 document.getElementById("uploadCaptureInputFile").value = ""; 

Apenas use isso para tornar o arquivo de input vazio:

  $('#uploadCaptureInputFile').val(''); 

Você deve redefinir o formulário, que contém o elemento de input do arquivo

  $('#formId').get(0).reset(); 

isso irá redefinir todos os elementos dentro do formulário