So löschen Sie die Dateieingabe

Lesezeit: 3 Minuten

Benutzer-Avatar
Benutzer1181690

Unten ist ein Teil des jquery-Codes, den ich habe, der die Dateieingabe und eine Schaltfläche “Datei löschen” anzeigt.

var $imagefile = $('<input />').attr({
    type: 'file',
    name: 'imageFile',
    class: 'imageFile'
});

$image.append($imagefile);

var $imageclear = $('<input />').attr({
    type: 'button',
    name: 'imageClear',
    class: 'imageClear',
    value: 'Clear File'
});

$image.append($imageclear);

Nun, der Grund, warum ich die Schaltfläche “Datei löschen” habe, ist, dass, wenn Sie auf die Schaltfläche klicken, alles gelöscht wird, was sich in der Dateieingabe befindet. Wie codiere ich es, damit es die Dateieingabe tatsächlich löscht, wenn ich auf die Schaltfläche “Datei löschen” klicke?

Benutzer-Avatar
Guillaume Poussel

Das sollte funktionieren:

$imageClear.on('click', function() { 
    $imageFile.val(''); 
});

  • Ja, es ist ein relativ einfach jQuery-Code. Es ist eine Cross-Browser-Lösung.

    – Guillaume Poussel

    8. März 2012 um 12:45 Uhr


  • Leute, <input type=file /> ist readonly nach Auswahl der Datei in >= IE8hier ist aus Sicherheitsgründen das ähnliche Q und der entsprechende A für die hier vorgeschlagene Lösung.

    – Paul T. Rawkeen

    1. August 2012 um 7:36 Uhr


  • <input type=file /> Der Datentyp ist eine Datei, wir können ihn nicht löschen, indem wir eine leere Zeichenfolge an das Eingabefeld übergeben.

    – Usman Mogul

    16. Oktober 2017 um 11:24 Uhr


  • Arbeite auch an Chrome. Das kann nützlich sein, um diese stackoverflow.com/a/11953476/1830909 und meinen Kommentar darunter zu sehen.

    – QMaster

    7. Oktober 2018 um 17:08 Uhr

  • Wie kann ich Dateien beim Hochladen mehrerer Dateien in der Dateieingabe mit jquery entfernen?

    – immer ein Lernender

    12. März 2020 um 9:25 Uhr

Löschen Sie die Dateieingabe mit jQuery

$("#fileInputId").val(null);

Löschen Sie die Dateieingabe mit JavaScript

document.getElementById("fileInputId").value = null;

für React-Benutzer

e.target.value = ""

Aber wenn das Dateieingabeelement von einem anderen Element ausgelöst wird (mit einer htmlFor -Attribut) – das bedeutet, dass Sie das Ereignis nicht haben

Sie könnten also eine Referenz verwenden:

zu Beginn der Funktion:

const inputRef = React.useRef();

am Eingabeelement

<input type="file" ref={inputRef} />

und dann auf eine onClick-Funktion (zum Beispiel) u schreiben können

inputRef.current.value = "" 
  • in Reaktionsklassen – gleiche Idee, aber Unterschied im Konstruktor: this.inputRef = React.createRef()

Benutzer-Avatar
Meditari

Dies ist die Methode, die ich auch gerne verwende, aber ich glaube, Sie müssen der Klonmethode den Parameter bool true hinzufügen, damit alle Ereignisse mit dem neuen Objekt verbunden bleiben, und Sie müssen den Inhalt löschen.

    var input = $("#fileInput");

    function clearInput() {
        input = input.val('').clone(true);
    };

https://api.jquery.com/clone/

Holen Sie sich die Eingabe-ID und setzen Sie val leer wie unten: Hinweis: Setzen Sie kein Leerzeichen zwischen val leere doppelte Anführungszeichen val(” “).

 $('#imageFileId').val("")

  • einfache und großartige Lösung zum Löschen der Dateieingabe

    – Mohammed Raza

    16. Dezember 2021 um 20:06 Uhr

Benutzer-Avatar
Syscall

Indem man es einstellt $("ID").val(null)hat bei mir funktioniert

  • einfache und großartige Lösung zum Löschen der Dateieingabe

    – Mohammed Raza

    16. Dezember 2021 um 20:06 Uhr

Benutzer-Avatar
Eismann

Eine andere Lösung, wenn Sie sicher sein möchten, dass dies browserübergreifend möglich ist, besteht darin, das Tag zu entfernen () und dann append () oder voranzustellen () oder auf andere Weise eine neue Instanz des Eingabe-Tags mit denselben Attributen erneut hinzuzufügen .

<form method="POST" enctype="multipart/form-data">
<label for="fileinput">
 <input type="file" name="fileinput" id="fileinput" />
</label>
</form>

$("#fileinput").remove();
$("<input>")
  .attr({
    type: 'file',
    id: 'fileinput',
    name: 'fileinput'
    })
  .appendTo($("label[for="fileinput"]"));

  • „Danke, Bruder, es hilft mir, aber beim Aktualisieren von Daten wird nichts angezeigt, kann ich den Code teilen?

    – Hanifullah Jamalzai

    28. Februar um 8:07 Uhr

1311980cookie-checkSo löschen Sie die Dateieingabe

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy