JavaScript: Formulardaten im Browser speichern und wieder einlesen

Speicherfunktion für Formulare.

Gerade bei längeren Formularen kann es hilfreich sein, dem Benutzer eine Speicherfunktion zu bieten. Er kann zu einem späteren Zeitpunkt die Formulardaten wieder laden. Die hier gezeigte Lösung speichert die Formulardaten im Local Storage des Browsers und lädt diese auf Knopfdruck wieder. Das heißt die Daten verlassen den heimischen Computer des Anwenders nicht.

Speichern von Formulardaten

Beginnen wir mit dem Speichern der Daten. Hier laden wir alle Daten des Formulars (ID ggf. Anpassen) und speichern diese in den lokalen Speicher des Browsers.

function saveFormData() {
    const form = document.getElementById("form-id");
    const formData = new FormData(form);
    const object = {};
    formData.forEach((value, key) => {
        object[key] = value;
    });
    const json = JSON.stringify(object, null, 2);
    localStorage.setItem('formData', json);
    alert("Form data saved successfully.");
}

Laden von Formulardaten

Nun zum Laden der Daten. Hier laden wir die Daten wieder in den Speicher und weisen diese den Formularelementen zu. Um Probleme mit Pflichtfeldern vorzubeugen, stoßen wir auch die Validierung an.

function loadFormData() {
    const json = localStorage.getItem('formData');
    if (json) {
        const data = JSON.parse(json);
        for (const key in data) {
            if (data.hasOwnProperty(key)) {
                const element = document.getElementsByName(key)[0];
                if (element) {
                    element.value = data[key];
                    // Trigger validation
                    element.dispatchEvent(new Event('input', { bubbles: true }));
                    element.dispatchEvent(new Event('change', { bubbles: true }));
                }
            }
        }
        alert("Form data loaded successfully.");
    } else {
        alert("No saved form data found.");
    }
}

Verwendung, z.B. Laden und Speichern Button

Ein Aufruf der Funktionen kann beispielsweise über Buttons erfolgen:

<button id="saveButton" onclick="saveFormData()" type="button">Speichern</button>
<button id="loadButton" onclick="loadFormData()" type="button">Laden</button>

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert