Mehrstufiges JavaScript-Formular
Baue ein mehrstufiges Formular mit purem JavaScript und ganz ohne Backend. Halte alle Felder in einem Formular, zeig jeweils nur ein Fieldset an und poste einmal am Ende. Kopiere den Wizard unten und ergänze deinen Zugangsschlüssel.
So baust du es
- Erstelle ein Formular in deinem Formpaste-Dashboard und kopiere den Zugangsschlüssel.
- Kopiere das Formular und das Script unten in deine Seite.
- Ersetze YOUR_ACCESS_KEY_HERE durch deinen Zugangsschlüssel, dann veröffentlichen.
Prompt für deinen KI-Coding-Agenten
Add a Formpaste multi-step form to my page with vanilla JavaScript. Use one real form containing several fieldsets, a step counter in a let variable, Back and Next buttons that show and hide the fieldsets, and a submit listener that POSTs new URLSearchParams(new FormData(form)) once at the end to https://api.formpaste.com/submit with a hidden access_key. Do not post on every step and do not add a backend.Oder verbinde den Formpaste-MCP-Server mit Claude Code, Codex, Cursor, Claude Desktop, VS Code oder einem beliebigen mcp-remote-Client. Zur Einrichtungsanleitung.
JavaScript-Fallstricke
Ein Kontaktformular mit purem JavaScript ist einfaches HTML plus ein Submit-Listener. Richte das Formular auf Formpaste aus, füge ein Skript hinzu, das preventDefault aufruft und die FormData mit fetch sendet, und dein Besucher bleibt auf der Seite. Kein Framework, kein Build-Schritt, kein eigenes Backend.
Es ist ein Formular plus ein Listener
Behalte das echte Formular-Markup mit einer action, die auf den Formpaste-Endpunkt zeigt, und füge dann einen Submit-Listener hinzu, der preventDefault aufruft und mit fetch sendet. Es gibt kein Framework und nichts zu installieren, also funktioniert derselbe Codeschnipsel auf einer statischen Seite, in einem CMS-Template oder auf einer handgeschriebenen Seite.
Progressive Enhancement ist gratis
Weil das Markup ein echtes Formular mit einer action ist, sendet es trotzdem, wenn dein Skript nicht lädt oder JavaScript ausgeschaltet ist. Der Listener ist ein Upgrade, das deinen Besucher auf der Seite hält, keine Voraussetzung.
Sende FormData, kein selbstgebautes Objekt
Baue den Body mit new FormData(form), damit jedes Feld mit seinem Namen dabei ist, einschließlich des versteckten access_key. Verpacke sie für ein normales Textformular in URLSearchParams, oder sende die FormData direkt, wenn das Formular ein Datei-Feld enthält.
Kümmere dich selbst um die Antwort
Der Endpunkt liefert JSON zurück (success, message, id). Warte auf den fetch und zeig deine eigene Erfolgs- oder Fehlermeldung, ruf dann form.reset() auf. Oder leg im Dashboard eine Redirect-URL fest und lass das einfache Formular-Posting die Arbeit ganz ohne Skript erledigen.
Worauf es ankommt
Ein Formular, mehrere Bildschirme
Ein mehrstufiges Formular ist eine einzige Einsendung, die in der UI auf mehrere Schritte verteilt ist. Sammle alle Felder im Client-State und poste am Ende einmal.
Eine eigene Route pro Schritt ist optional
Du kannst jedem Schritt eine eigene URL geben, um den Zurück-Button zu unterstützen, oder alles auf einer Seite mit lokalem State belassen. Beide Varianten posten dieselbe finale Payload.
Poste die gesamte Payload einmal
Poste nicht bei jedem Schritt. Sammle die Felder, während der Nutzer weitergeht, und sende eine Anfrage, wenn er fertig ist.
So funktioniert es
Drei einfache Schritte, bis Formular-Einsendungen in deinem E-Mail-Posteingang landen.
Erstelle dein Formular, setze die action-URL auf den Formpaste-Endpunkt und trage deinen Zugangsschlüssel ein.
Formular erstellen
Melde dich an, verifiziere deine E-Mail und erstelle einen Zugangsschlüssel im Dashboard.
Code kopieren
Füge das Snippet oben in dein Projekt ein. Wähle CSS oder Tailwind passend zu deiner Website.
<form id="form" action="https://api.formpaste.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">
<fieldset data-step><label>Name <input name="name" required></label></fieldset>
<fieldset data-step hidden><label>Email <input type="email" name="email" required></label></fieldset>
<fieldset data-step hidden><label>Message <textarea name="message"></textarea></label></fieldset>
<button type="button" id="back" hidden>Back</button>
<button type="button" id="next">Next</button>
<button type="submit" id="send" hidden>Submit</button>
</form>
<script>
const form = document.getElementById("form");
const steps = form.querySelectorAll("[data-step]");
const back = document.getElementById("back");
const next = document.getElementById("next");
const send = document.getElementById("send");
let step = 0;
function render() {
steps.forEach((s, i) => (s.hidden = i !== step));
back.hidden = step === 0;
next.hidden = step === steps.length - 1;
send.hidden = step !== steps.length - 1;
}
back.addEventListener("click", () => { step--; render(); });
next.addEventListener("click", () => { step++; render(); });
form.addEventListener("submit", async (e) => {
e.preventDefault();
await fetch(form.action, { method: "POST", body: new URLSearchParams(new FormData(form)) });
form.reset();
});
render();
</script>
Zugangsschlüssel hinzufügen
Ersetze den Platzhalter durch deinen Zugangsschlüssel, um Einsendungen zu empfangen.
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">Mehrstufiges JavaScript-Formular FAQ
Formular einfügen. Einsendungen erhalten.
Sofort, ohne Backend, Server oder Datenbanken einzurichten. 250 Einsendungen/Monat kostenlos - keine Kreditkarte.