Existe alguma chance de detectar cada seleção de arquivo que o usuário fez para um HTML input
do file
elemento type ?
Isso foi solicitado várias vezes antes, mas o onchange
evento geralmente proposto não é acionado se o usuário selecionar o mesmo arquivo novamente.
javascript
html
forms
dom-events
dronus
fonte
fonte
input
valor s como '' depois de fazer algo com o arquivo. Mas isso removeria o nome do arquivo visível também. No entanto, isso pode ser bom, pois o arquivo é realmente processado e o resultado dessa ação pode aparecer em outro lugar.file
entradaonchange
não se parece.Respostas:
Defina o valor de
input
paranull
em cadaonclick
evento. Isso redefinirá oinput
valor do e disparará oonchange
evento, mesmo que o mesmo caminho esteja selecionado.Aqui está uma demonstração .
Nota: É normal se o seu arquivo tiver o prefixo 'C: \ fakepath \'. Esse é um recurso de segurança que impede o JavaScript de conhecer o caminho absoluto do arquivo. O navegador ainda o conhece internamente.
fonte
this.value = null
no final do textoonchange
porque é possível ativar um elemento de entrada sem clicar nele (usando o teclado). Você pode armazenarinput.files
se precisar fazer referência posteriormente.this.value=null;
só é necessário para o Chrome, o Firefox funcionará bem apenas comreturn false;
Aqui está um FIDDLE
fonte
Neste artigo, sob o título "Usando entrada de formulário para selecionar"
http://www.html5rocks.com/en/tutorials/file/dndfiles/
Ele adiciona um ouvinte de evento a 'alteração', mas eu o testei e é acionado mesmo se você escolher o mesmo arquivo e não se você cancelar.
fonte
change
evento seria acionado apenas nas alterações de nome de arquivo.Use o evento onClick para limpar o valor da entrada de destino, sempre que o usuário clicar no campo. Isso garante que o evento onChange seja acionado para o mesmo arquivo também. Trabalhou para mim :)
Usando TypeScript
fonte
Faça o que você quiser depois que o arquivo for carregado com êxito. Logo após a conclusão do processamento do arquivo, defina o valor do controle de arquivo como string em branco. como por exemplo, você pode fazer isso e trabalhou para mim como charme
fonte
fonte
Limpar o valor do 0º índice de entrada funcionou para mim . Por favor, tente o código abaixo, espero que funcione (AngularJs).
fonte