Mehrstufiges React-Formular

Baue ein mehrstufiges Formular in React ganz ohne Backend. Sammle die Felder über mehrere Schritte im Component-State und poste am Ende einmal an Formpaste. Kopiere den Wizard-Code und ergänze deinen Zugangsschlüssel.

Schritt 1 von 3

So baust du es

  1. Erstelle ein Formular in deinem Formpaste-Dashboard und kopiere den Zugangsschlüssel.
  2. Kopiere die untenstehende mehrstufige Komponente in deine App.
  3. Ersetze YOUR_ACCESS_KEY_HERE durch deinen Zugangsschlüssel und deploye.

Prompt für deinen KI-Coding-Agenten

Add a Formpaste multi-step form to my React app. Use a component that collects name, email and message across several steps in local state with Next and Back buttons, then POSTs once at the end as application/x-www-form-urlencoded (URLSearchParams) 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.

React-Fallstricke

Ein React-Kontaktformular ist einfach eine Komponente mit einem Submit-Handler, der an Formpaste postet. Es gibt kein eigenes Backend und keine eigene API-Route. Platziere den Fetch in einer Komponente, die im Browser läuft, und du bist fertig.

Es ist eine Client-Komponente

Der onSubmit-Fetch läuft im Browser, das Formular lebt also in einer normalen Client-Komponente. In einer reinen React-SPA ist ohnehin jede Komponente client-seitig; in einem Framework mit Server-Komponenten fügst du die Client-Grenze dort ein, wo der Fetch läuft.

Keine API-Route, kein Proxy

Du postest nicht an eine eigene /api-Route und leitest von dort weiter. Die Komponente postet direkt an den Formpaste-Endpunkt, das spart einen kompletten Server-Roundtrip und einen Mailer, den du sonst selbst schreiben müsstest.

Controlled oder uncontrolled, beides funktioniert

Lies die Werte per FormData über das Formularelement (uncontrolled) oder aus useState (controlled). Uncontrolled bedeutet weniger Code für ein einfaches Kontaktformular; controlled ist praktisch, wenn du schon während der Eingabe validierst.

Verarbeite die Antwort im State

Der Endpunkt liefert JSON zurück (success, message, id). Warte auf den Fetch und setze einen State, um deine eigene Erfolgs- oder Fehler-UI anzuzeigen, oder hinterlege eine Weiterleitung im Dashboard und überspringe die Client-seitige Verarbeitung.

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.

1

Formular erstellen

Melde dich an, verifiziere deine E-Mail und erstelle einen Zugangsschlüssel im Dashboard.

2

Code kopieren

Füge das Snippet oben in dein Projekt ein. Wähle CSS oder Tailwind passend zu deiner Website.

import { useState } from "react";

const ENDPOINT = "https://api.formpaste.com/submit";

export function MultiStepForm() {
  const [step, setStep] = useState(0);
  const [data, setData] = useState({ name: "", email: "", message: "" });
  const set = (k, v) => setData((d) => ({ ...d, [k]: v }));

  async function submit(e) {
    e.preventDefault();
    const body = new URLSearchParams({ access_key: "YOUR_ACCESS_KEY_HERE", ...data });
    await fetch(ENDPOINT, { method: "POST", body });
  }

  return (
    <form onSubmit={submit}>
      {step === 0 && (
        <input value={data.name} onChange={(e) => set("name", e.target.value)} placeholder="Name" required />
      )}
      {step === 1 && (
        <input type="email" value={data.email} onChange={(e) => set("email", e.target.value)} placeholder="Email" required />
      )}
      {step === 2 && (
        <textarea value={data.message} onChange={(e) => set("message", e.target.value)} placeholder="Message" />
      )}
      {step < 2 ? (
        <button type="button" onClick={() => setStep((s) => s + 1)}>Next</button>
      ) : (
        <button type="submit">Submit</button>
      )}
    </form>
  );
}
3

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 React-Formular FAQ

Formular einfügen. Einsendungen erhalten.

Sofort, ohne Backend, Server oder Datenbanken einzurichten. 250 Einsendungen/Monat kostenlos - keine Kreditkarte.

Andere React-Formulare