HTMLFormElement: formdata-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2021 browserübergreifend verfügbar.
Das formdata-Ereignis wird ausgelöst, nachdem die Eintragsliste mit den Formulardaten erstellt wurde. Dies geschieht beim Absenden des Formulars, kann aber auch durch den Aufruf eines FormData()-Konstruktors ausgelöst werden.
Dieses Ereignis kann nicht abgebrochen werden und steigt nicht im DOM-Baum auf.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("formdata", (event) => { })
Alternativ können Sie ihn der Ereignisbehandlungs-Eigenschaft der Schnittstelle zuweisen:
onformdata = (event) => { }
Ereignistyp
Ein FormDataEvent. Erbt von Event.
Beispiele
// grab reference to form
const formElem = document.querySelector("form");
// submit handler
formElem.addEventListener("submit", (e) => {
// on form submission, prevent default
e.preventDefault();
console.log(formElem.querySelector('input[name="field1"]').value); // FOO
console.log(formElem.querySelector('input[name="field2"]').value); // BAR
// construct a FormData object, which fires the formdata event
const formData = new FormData(formElem);
// formdata gets modified by the formdata event
console.log(formData.get("field1")); // foo
console.log(formData.get("field2")); // bar
});
// formdata handler to retrieve data
formElem.addEventListener("formdata", (e) => {
console.log("formdata fired");
// modifies the form data
const formData = e.formData;
// formdata gets modified by the formdata event
formData.set("field1", formData.get("field1").toLowerCase());
formData.set("field2", formData.get("field2").toLowerCase());
});
Die Variante mit onformdata würde so aussehen (beachten Sie jedoch, dass sie gegebenenfalls andere mit onformdata hinzugefügte Ereignis-Listener ersetzt):
formElem.onformdata = (e) => {
console.log("formdata fired");
// modifies the form data
const formData = e.formData;
formData.set("field1", formData.get("field1").toLowerCase());
formData.set("field2", formData.get("field2").toLowerCase());
};
Spezifikationen
| Spezifikation |
|---|
| HTML> # event-formdata> |
Browser-Kompatibilität
Siehe auch
- HTML-Element
<form> FormDataEvent