FormData: FormData() Konstruktor
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Der FormData() Konstruktor erstellt ein neues FormData-Objekt.
Syntax
new FormData()
new FormData(form)
new FormData(form, submitter)
Parameter
formOptional-
Ein HTML
<form>Element — wenn angegeben, wird dasFormData-Objekt mit den aktuellen Schlüssel-/Wertpaaren desform-Elements befüllt. Dabei wird die Name-Eigenschaft jedes Elements als Schlüssel und der übermittelte Wert als Wert verwendet. Auch Dateieingabeinhalte werden kodiert. Einformdata-Event wird auf dem Formular ausgelöst, wenn dasFormData-Objekt erstellt wird, sodass das Formular die Formulardaten bei Bedarf ändern kann. submitterOptional-
Ein Sende-Button, der Mitglied des
formist. Wenn dersubmittereinname-Attribut oder ein<input type="image">hat, werden seine Daten im FormData-Objekt enthalten sein (z.B.btnName=btnValue).
Ausnahmen
TypeError-
Wird ausgelöst, wenn der angegebene
submitterkein Sende-Button ist. NotFoundErrorDOMException-
Wird ausgelöst, wenn der angegebene
submitterkein Mitglied desformist. Dersubmittermuss entweder ein Nachkomme des Formularelements sein oder einform-Attribut haben, das auf das Formular verweist.
Beispiele
>Erstellen einer leeren FormData
Die folgende Zeile erstellt ein leeres FormData-Objekt:
const formData = new FormData();
Sie könnten ein Schlüssel-/Wertpaar mit append() hinzufügen:
formData.append("username", "Chris");
Vorbefüllen aus einem HTML-Formular-Element
Sie können die optionalen Argumente form und submitter angeben, wenn Sie das FormData-Objekt erstellen, um es mit Werten aus dem angegebenen Formular vorzufüllen.
Hinweis: Nur erfolgreiche Formularelemente sind in einem FormData-Objekt enthalten, d.h. solche mit einem Namen und nicht im deaktivierten Zustand.
HTML
<form id="form">
<input type="text" name="text1" value="foo" />
<input type="text" name="text2" value="bar" />
<input type="text" name="text3" value="baz" />
<input type="checkbox" name="check" checked disabled />
<button name="intent" value="save">Save</button>
<button name="intent" value="saveAsCopy">Save As Copy</button>
</form>
<output id="output"></output>
JavaScript
const form = document.getElementById("form");
const submitter = document.querySelector("button[value=save]");
const formData = new FormData(form, submitter);
const output = document.getElementById("output");
for (const [key, value] of formData) {
output.textContent += `${key}: ${value}\n`;
}
Ergebnis
Aus Gründen der Kürze wird das <form>-Element nicht angezeigt.
Spezifikationen
| Spezifikation |
|---|
| XMLHttpRequest> # dom-formdata> |