Zuerst die Konsole öffnen
„Sendet nicht ab“ hat eine präzise Bedeutung, die Sie zuerst prüfen sollten: DevTools öffnen, den Network-Tab beobachten, auf Senden klicken. Erscheint eine Anfrage, sendet Ihr Formular, und das Problem liegt serverseitig oder in der Antwortverarbeitung, also in einem anderen Leitfaden. Erscheint keine Anfrage, ist einer dieser fünf die Ursache:
| Der Schalter | Was Sie beobachten |
|---|---|
| Button mit type="button", oder außerhalb des Formulars | Klick tut nichts, Konsole still |
| Verstecktes Pflichtfeld | Konsole: “invalid form control … is not focusable” |
| Ein Feld namens submit | Skripte werfen “form.submit is not a function” |
| Deaktivierter Senden-Button | Button ausgegraut oder normal gestylt, aber tot |
| preventDefault() und dann stilles Scheitern | Handler läuft, keine Anfrage, vielleicht ein geworfener Fehler |
Ein Feld namens submit
Jedes Formularelement wird unter seinem Namen zu einer Eigenschaft des Formular-Objekts, und ein Feld namens submit ersetzt die submit()-Methode des Formulars durch sich selbst. Jedes Skript, das danach form.submit() aufruft, auch fremde, wirft einen Fehler. Unsere Testseite warf beim ersten Aufruf TypeError: document.getElementById(...).submit is not a function.
Der Klick auf den Button kann dabei weiter funktionieren, was den Defekt zufällig aussehen lässt: Handklicks senden, Skript-Sendungen stürzen ab. Benennen Sie das Feld um (submit-button, oder irgendein Name, der keine Formular-Eigenschaft ist; dasselbe gilt für Felder namens action oder method), und die Methode ist zurück. Die FAQ von Contact Form 7 führt eine ganze Liste von Namen, die WordPress zusätzlich reserviert, weshalb seine Standardfelder das Präfix your- tragen.
Deaktivierte Buttons und Handler, die das Ereignis schlucken
Ein Senden-Button mit disabled ist per Definition tot, und die subtile Variante ist ein Skript, das den Button gegen Doppelklicks deaktiviert und nach einem Validierungsfehler nicht wieder aktiviert, womit der zweite Versuch unmöglich wird. Erzeugt der Klick weder Fokusrahmen noch Konsolenzeile, inspizieren Sie das Button-Element und suchen Sie das Attribut.
Die JavaScript-Variante von „nichts passiert“ ist ein Submit-Handler, der event.preventDefault() aufruft und sein eigenes Senden nie zu Ende bringt: ein Tippfehler vor dem fetch, ein gescheiterter Import, eine Bedingung mit frühem Return. Das Standardverhalten des Formulars ist abgeschaltet, der Ersatz läuft nie, und der Besucher sieht gar nichts. Die Konsole zeigt meist den geworfenen Fehler; scheitert der Handler still, bestätigt ein vorübergehendes console.log in seiner ersten Zeile, dass er überhaupt läuft. Und nach jeder dieser Reparaturen: ausgeloggt und am Seitencache vorbei testen, denn ein gecachtes Dokument liefert das kaputte Skript noch lange nach der Korrektur aus.
Ein Formular mit weniger Angriffsfläche
Drei der fünf Schalter leben in eigenem JavaScript oder in verrutschtem Markup. Ein schlichtes HTML-Formular, das an ein Backend sendet, braucht beides nicht: kein Handler, kein fetch, keine Reaktivierungslogik, nur action, method="POST" und benannte Felder. Bei Formgong legt der Endpunkt jede Einsendung zusätzlich in einen Posteingang im Dashboard und liefert an E-Mail und Telegram; die HTML-Anleitung ist eine Seite Einrichtung, und unser Formular-Check sagt Ihnen, ob ein bestehendes Formular überhaupt etwas sendet. Der kostenlose Tarif nimmt 1.000 Einsendungen im Monat.
Alles in einem Konto. Feedback erwünscht
Welcher der fünf Schalter war es bei Ihnen, oder zeigte der Network-Tab etwas, das diese Seite nicht abdeckt?
Mit einem Formgong-Konto bekommen Sie neben dem Kontaktformular, das an E-Mail und Telegram sendet, auch kostenlose Website-Vorlagen (auf Englisch), in denen das Formular schon angeschlossen ist, einen KI-Hilfe-Chat, der Fragen Ihrer Besucher aus Ihren eigenen Seiten beantwortet, und Kundenbewertungen zum Sammeln und Anzeigen. Anfragen landen in einem Posteingang. Jedes dieser Produkte hat einen kostenlosen Tarif.
Fehlt Ihnen auf dieser Seite etwas, oder ist etwas unklar? Schreiben Sie uns an support@formgong.com. Wir lesen jede Nachricht und verbessern die Seite danach.
Häufig gestellte Fragen
Warum passiert beim Klick auf Senden in meinem HTML-Formular nichts?
Fünf Dinge prüfen: das type-Attribut des Buttons (type="button" sendet nie), ein verstecktes Feld mit required (die Konsole zeigt “is not focusable”), ein Feld namens submit (bricht form.submit()), einen deaktivierten Button und einen JavaScript-Handler, der preventDefault() aufruft und dann scheitert. Die Konsole identifiziert die meisten davon.
Was bedeutet “An invalid form control is not focusable”?
Ein Pflichtfeld ist bei der Validierung durchgefallen, aber es ist versteckt (display:none), also kann der Browser es nicht fokussieren, um die Meldung zu zeigen, und bricht das Senden ab. required von versteckten Feldern entfernen, sie im versteckten Zustand deaktivieren oder unter novalidate selbst validieren.
Warum wirft form.submit() “is not a function”?
Das Formular hat ein Feld namens submit, das die Methode überdeckt: Formularelemente werden unter ihren Namen zu Eigenschaften des Formulars. Das Feld umbenennen, und die Methode funktioniert wieder.
Woran erkenne ich, ob das Formular überhaupt sendet?
DevTools öffnen, in den Network-Tab wechseln, auf den Button klicken. Erscheint eine Anfrage, sendet das Formular, und das Problem liegt beim Server oder in der Antwortverarbeitung; erscheint keine, blockiert die Seite das Senden, durch einen der fünf Schalter oben.
Quellen und Dokumentation
Offizielle Quellen zu dieser Anleitung: MDN: button type attribute, MDN: HTMLFormElement.submit(), MDN: Constraint validation. HTML-Kontaktformular, wo die Daten gespeichert werden.
Verwandte Anleitungen
- Lovable-Formular an E-Mail und Telegram senden
- HTML-Kontaktformular ohne Backend: ein funktionierendes Beispiel
- So senden Sie Website-Einsendungen an Telegram
- Kontaktformular sendet keine E-Mail? So finden Sie die Ursache
- Website-Leads in Telegram verwalten – ohne CRM
- Formular-Backend für KI-Websites: Lovable, Bolt, v0, Cursor
- Telegram-Bot fürs Kontaktformular: selbst bauen?
- Formular-Backend und DSGVO: 7 Prüfpunkte
- Kontaktformular-Spamschutz ohne Captcha
- Mailto-Formular in HTML: warum es scheitert
- HTML-Formular in Google Sheets: 2 kostenlose Wege
- Webflow-Formular-Limit: was tun nach 50?
- Turnstile vs. reCAPTCHA vs. hCaptcha im Vergleich
- Contact Form 7 und Elementor an Telegram senden
- Squarespace-Formular sendet keine E-Mail?
- Shopify-Kontaktformular: Wohin gehen Mails?
- Google Formular an Telegram: kostenlos
- Wix-Kontaktformular sendet keine E-Mail?
- EU-/DSGVO-Formspree-Alternativen im Vergleich
- WordPress-Kontaktformular ohne Plugin
- Kontaktformulare, die nichts senden: 793 KI-Websites im Test
- Formspree „Form not found“ und andere Fehler: Lösungen
- Web3Forms-Fehler: „Invalid access key“ und 403 erklärt
- Kundenbewertungen kostenlos auf der Website einbinden
- Kontaktformular „Failed to fetch“: Ursachen und Lösungen
- WooCommerce-Produktanfrageformular
- Contact Form 7 oder WPForms
- Gravity Forms Alternative kostenlos
- WordPress Kontaktformular kostenlos
- Formular-Mails landen im Spam: die Lösung
- Kontaktformular funktioniert nicht: Fehler finden