Je développe une application metro avec VS2012 et Javascript
Je veux réinitialiser le contenu de mon entrée de fichier:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
Comment dois-je faire ça?
Je développe une application metro avec VS2012 et Javascript
Je veux réinitialiser le contenu de mon entrée de fichier:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
Comment dois-je faire ça?
inputElement.value = ""
fasse très bien l'affaire sans avoir recours au clonage ou à l'emballage comme suggéré. Travaille en CH (46), IE (11) et FF (41)Réponses:
La solution jQuery que @ dhaval-marthak a publiée dans les commentaires fonctionne évidemment, mais si vous regardez l'appel jQuery réel, il est assez facile de voir ce que jQuery fait, il suffit de définir l'
value
attribut sur une chaîne vide. Donc en JavaScript "pur" ce serait:la source
$(#myfileselector).trigger('fileselect', [1, ""]);
Vous devez encapsuler
<input type = “file”>
dans les<form>
balises, puis vous pouvez réinitialiser la saisie en réinitialisant votre formulaire:la source
$("form").get(0).reset();
. Le.get(0)
renverra l'élément de formulaire réel afin que vous puissiez utiliser lareset()
fonction.C'est la meilleure solution:
De toutes les réponses ici, c'est la solution la plus rapide. Aucun clone d'entrée, aucune réinitialisation de formulaire!
Je l'ai vérifié dans tous les navigateurs (il prend même en charge IE8).
la source
input.type
trop? Définir uniquement la valeur''
donne le résultat attendu.onchange
événement dans MS Edge?Si vous avez les éléments suivants:
alors faites juste:
pour réinitialiser le contrôle de fichier.
la source
inputFileEl.value = '';
Vous pouvez simplement le cloner et le remplacer par lui-même, avec tous les événements toujours attachés:
et
Merci: Css-tricks.com
la source
value
même dans d'autres réponses semble beaucoup plus simple que de manipuler le DOM.Une autre solution (sans sélectionner les éléments HTML DOM)
Si vous avez ajouté l'écouteur d'événement 'change' sur cette entrée, alors dans le code javascript, vous pouvez appeler (pour certaines conditions spécifiées):
Par exemple en HTML:
Et en javascript:
la source
.
devant l'extension de fichier.SOLUTION
Le code suivant a fonctionné pour moi avec jQuery. Il fonctionne dans tous les navigateurs et permet de conserver les événements et les propriétés personnalisées.
DEMO
Voir ce jsFiddle pour le code et la démonstration.
LIENS
Voir Comment réinitialiser l'entrée de fichier avec JavaScript pour plus d'informations.
la source
<input type="file">
avec un ID spécifique.Réinitialiser un bouton de téléchargement de fichier est si facile en utilisant du JavaScript pur !
Il y a peu de façons de le faire, mais la manière simple et efficace qui fonctionne bien dans de nombreux navigateurs est de changer la valeur déposée en rien, de cette façon le téléchargement déposé est réinitialisé, essayez également d'utiliser du javascript pur plutôt que n'importe quel cadre, j'ai créé le code ci-dessous, il suffit de le vérifier (ES6):
la source
Particulièrement pour Angular
Cela fonctionnera, mais si vous utilisez Angular, il dira que "la propriété 'value' n'existe pas sur le type 'HTMLElement'.any"
document.getElementById () renvoie le type HTMLElement qui ne contient pas de propriété value. Donc, convertissez-le en HTMLInputElement
SUPPLÉMENTAIRE :-
Cependant, nous ne devons pas utiliser la manipulation DOM (document.xyz ()) en angulaire.
Pour ce faire, angulaire a fourni @VIewChild, @ViewChildren, etc. qui sont respectivement document.querySelector (), document.queryselectorAll ().
Même moi, je ne l'ai pas lu. Mieux vaut suivre les blogs d'experts
Traverser cette link1 , lien2
la source
J'utilise pour vuejs
la source
La réinitialisation du fichier d'entrée est très simple
$('input[type=file]').val(null);
Si vous liez réinitialisez le fichier dans changer un autre champ du formulaire, ou chargez le formulaire avec ajax.
Cet exemple est applicable
le sélecteur par exemple est
$('input[type=text]')
ou tout élément du formulaireévénement
click
,change
ou tout événementla source
Avec IE 10, j'ai résolu le problème avec:
où :
la source
la source
Il existe de nombreuses approches et je proposerai d'aller avec l'attachement ref à l'entrée.
pour effacer la valeur après la soumission.
la source
Utilisez simplement:
la source
Avec angulaire, vous pouvez créer une variable de modèle et définir la valeur sur
null
Ou vous pouvez créer une méthode pour réinitialiser comme ceci
component.ts
modèle
démo stackblitz
la source
Vous ne pouvez pas réinitialiser cela car il s'agit d'un fichier en lecture seule. vous pouvez le cloner pour contourner le problème.
la source
Vous devriez essayer ceci:
la source
Cela pourrait être fait comme ça
la source
Ma meilleure solution
la source
Solution jQuery:
la source
on change
événement de l'entrée de fichier est déclenché, la valeur est effacée. Le type d'entrée est réinitialisé de aucun vers fichier.J'ai rencontré le problème avec ng2-file-upload pour angular. si vous cherchez la solution en angulaire référez-vous au code ci-dessous
HTML:
<input type="file" name="myfile"
#activeFrameinputFileng2FileSelect [uploader]="frameUploader" (change)="frameUploader.uploadAll()" />
composant
import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';
@ViewChild('
activeFrameinputFile')
InputFrameVariable: ElementRef;
this.frameUploader.onSuccessItem = (item, response, status, headers) => {
};
la source
la source
Si vous avez plusieurs fichiers dans votre formulaire mais que vous souhaitez uniquement réinitialiser l'un d'eux:
si vous utilisez boostrap, jquery, filestyle pour afficher le formulaire du fichier d'entrée:
la source
la source
Fonctionne également pour les contrôles dynamiques.
Javascript
JQuery
la source
la source