Ich entwickle eine Metro-App mit VS2012 und Javascript
Ich möchte den Inhalt meiner Dateieingabe zurücksetzen:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
Wie soll ich das machen
Ich entwickle eine Metro-App mit VS2012 und Javascript
Ich möchte den Inhalt meiner Dateieingabe zurücksetzen:
<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
Wie soll ich das machen
inputElement.value = ""
Trick den Trick gut macht, ohne wie vorgeschlagen auf das Klonen oder Verpacken zurückzugreifen. Arbeitet in CH (46), IE (11) und FF (41)Antworten:
Die jQuery-Lösung, die @ dhaval-marthak in den Kommentaren gepostet hat, funktioniert offensichtlich, aber wenn Sie sich den tatsächlichen jQuery-Aufruf ansehen, ist es ziemlich einfach zu erkennen, was jQuery tut, indem Sie einfach das
value
Attribut auf eine leere Zeichenfolge setzen. In "reinem" JavaScript wäre es also:quelle
$(#myfileselector).trigger('fileselect', [1, ""]);
Sie müssen wickeln ,
<input type = “file”>
um<form>
Tags und dann können Sie Eingabe zurücksetzen , indem Sie das Formular zurückzusetzen:quelle
$("form").get(0).reset();
. Das.get(0)
gibt das eigentliche Formularelement zurück, damit Sie diereset()
Funktion verwenden können.Dies ist die beste Lösung:
Von allen Antworten hier ist dies die schnellste Lösung. Kein Eingabe-Klon, kein Zurücksetzen des Formulars!
Ich habe es in allen Browsern überprüft (es hat sogar IE8-Unterstützung).
quelle
input.type
ebenfalls zurückzusetzen? Wenn Sie nur den Wert auf''
einstellen, erhalten Sie das erwartete Ergebnis.onchange
Ereignis in MS Edge ausgelöst?Falls Sie Folgendes haben:
dann mach einfach:
um das Dateisteuerelement zurückzusetzen.
quelle
inputFileEl.value = '';
Sie können es einfach klonen und durch sich selbst ersetzen, wobei alle Ereignisse noch angehängt sind:
und
Danke: Css-tricks.com
quelle
value
Ähnlichem in anderen Antworten scheint viel einfacher zu sein als das Manipulieren des DOM.Eine andere Lösung (ohne Auswahl von HTML-DOM-Elementen)
Wenn Sie für diese Eingabe den Ereignis-Listener 'change' hinzugefügt haben, können Sie im Javascript-Code (unter bestimmten Bedingungen) Folgendes aufrufen:
Zum Beispiel in HTML:
Und in Javascript:
quelle
.
vor der Dateierweiterung enthalten.LÖSUNG
Der folgende Code hat bei mir mit jQuery funktioniert. Es funktioniert in jedem Browser und ermöglicht das Beibehalten von Ereignissen und benutzerdefinierten Eigenschaften.
DEMO
Code und Demonstration finden Sie in dieser jsFiddle .
LINKS
Siehe Wie Datei - Eingabe mit JavaScript zurücksetzen für weitere Informationen.
quelle
<input type="file">
mit spezifischer ID.Das Zurücksetzen einer Datei-Upload-Schaltfläche ist mit reinem JavaScript so einfach !
Es gibt nur wenige Möglichkeiten, dies zu tun, aber die unkomplizierte Methode, die in vielen Browsern gut funktioniert, besteht darin, den abgelegten Wert in nichts zu ändern. Auf diese Weise wird der hochgeladene Upload zurückgesetzt. Versuchen Sie auch, reines Javascript anstelle eines Frameworks zu verwenden. Ich habe das erstellt Code unten, einfach ausprobieren (ES6):
quelle
Besonders für Angular
Funktioniert, aber wenn Sie Angular verwenden, wird angezeigt, dass "Eigenschaft 'Wert' für Typ 'HTMLElement' nicht vorhanden ist.
document.getElementById () gibt den Typ HTMLElement zurück, der keine value-Eigenschaft enthält. Also, wandle es in HTMLInputElement um
EXTRA :-
Wir sollten jedoch keine DOM-Manipulation (document.xyz ()) im Winkel verwenden.
Zu diesem Zweck hat Angular @VIewChild, @ViewChildren usw. bereitgestellt, die document.querySelector () bzw. document.queryselectorAll () sind.
Auch ich habe es nicht gelesen. Es ist besser, Expertenblogs zu folgen
Gehen Sie durch diesen Link1 , Link2
quelle
Ich benutze für vuejs
quelle
Die zurückgesetzte Eingabedatei ist sehr einfach
$('input[type=file]').val(null);
Wenn Sie binden, setzen Sie die Datei in einem anderen Feld des Formulars zurück oder laden Sie das Formular mit Ajax.
Dieses Beispiel ist anwendbar
Selektor zum Beispiel ist
$('input[type=text]')
oder ein beliebiges Element des FormularsEreignis
click
,change
oder irgendein Ereignisquelle
Mit IE 10 habe ich das Problem gelöst mit:
wo :
quelle
quelle
Es gibt viele Ansätze und ich werde vorschlagen, mit ref Anhang zur Eingabe zu gehen.
Wert nach dem Senden löschen.
quelle
Benutz einfach:
quelle
Mit Angular können Sie eine Vorlagenvariable erstellen und den Wert auf festlegen
null
Oder Sie können eine Methode zum Zurücksetzen wie folgt erstellen
component.ts
Vorlage
Stackblitz-Demo
quelle
Sie können dies nicht zurücksetzen, da es sich um eine schreibgeschützte Datei handelt. Sie können es klonen, um das Problem zu umgehen.
quelle
Sie sollten dies versuchen:
quelle
Dies könnte so gemacht werden
quelle
Meine beste Lösung
quelle
jQuery-Lösung:
quelle
on change
Ereignis der Dateieingabe ausgelöst wird, wird der Wert gelöscht. Der Typ der Eingabe wird von none in file zurückgesetzt.Ich hatte das Problem mit dem Hochladen von ng2-Dateien für Angular. Wenn Sie nach einer Lösung im Winkel suchen, lesen Sie den folgenden Code
HTML:
<input type="file" name="myfile"
#activeFrameinputFileng2FileSelect [uploader]="frameUploader" (change)="frameUploader.uploadAll()" />
Komponente
import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';
@ViewChild('
activeFrameinputFile')
InputFrameVariable: ElementRef;
this.frameUploader.onSuccessItem = (item, response, status, headers) => {
};
quelle
quelle
Wenn Sie mehrere Dateien in Ihrem Formular haben, aber nur eine davon zurücksetzen möchten:
Wenn Sie Boostrap, JQuery und Filestyle verwenden, um das Formular für die Eingabedatei anzuzeigen:
quelle
quelle
Funktioniert auch für dynamische Steuerelemente.
Javascript
JQuery
quelle
quelle