Form: Vorname/Nachname + Branche, Hero ohne Leistungen-Button
Deploy / build-and-deploy (push) Successful in 21s

Form
- Name in Vorname + Nachname gesplittet (beide Pflicht), 2-Spalten-Grid
- Neues Feld Branche neben Firmenname (optional, 2-Spalten-Grid)
- Telefon-Label auf 'Telefonnummer' vereinheitlicht
- Placeholder ohne Em-Dash

script.js
- Validierung jetzt auf vorname/nachname/email/nachricht
- Payload sendet neue Einzelfelder (vorname, nachname, firmenname,
  branche) PLUS zusammengesetzte Backward-Compat-Felder (name, firma
  mit Branche-Suffix in Klammern), damit server.js/Inbox-Schema
  unverändert bleibt

Hero
- 'Leistungen ansehen' Ghost-Button entfernt, nur noch der schwarze
  'Kontakt aufnehmen' CTA

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
ToolCTRLandClaude Opus 4.7 committed 2026-06-03 12:21:39 +02:00
1 parent 9d75831130
commit 9ecfc015b1
2 files changed
+33 -13

No files matched your search

+20 -9
View File
@@ -53,7 +53,6 @@
</p>
<div class="hero-actions">
<a class="btn btn-solid" href="#kontakt">Kontakt aufnehmen</a>
<a class="btn btn-ghost" href="#leistungen">Leistungen ansehen</a>
</div>
</div>
@@ -349,13 +348,25 @@
</div>
<form class="lead-form" id="lead-form" novalidate>
<div class="form-row">
<label for="f-name">Name <span>*</span></label>
<input id="f-name" name="name" type="text" autocomplete="name" required />
<div class="form-grid">
<div class="form-row">
<label for="f-vorname">Vorname <span>*</span></label>
<input id="f-vorname" name="vorname" type="text" autocomplete="given-name" required />
</div>
<div class="form-row">
<label for="f-nachname">Nachname <span>*</span></label>
<input id="f-nachname" name="nachname" type="text" autocomplete="family-name" required />
</div>
</div>
<div class="form-row">
<label for="f-firma">Firma</label>
<input id="f-firma" name="firma" type="text" autocomplete="organization" />
<div class="form-grid">
<div class="form-row">
<label for="f-firmenname">Firmenname</label>
<input id="f-firmenname" name="firmenname" type="text" autocomplete="organization" />
</div>
<div class="form-row">
<label for="f-branche">Branche</label>
<input id="f-branche" name="branche" type="text" />
</div>
</div>
<div class="form-grid">
<div class="form-row">
@@ -363,14 +374,14 @@
<input id="f-email" name="email" type="email" autocomplete="email" required />
</div>
<div class="form-row">
<label for="f-telefon">Telefon</label>
<label for="f-telefon">Telefonnummer</label>
<input id="f-telefon" name="telefon" type="tel" autocomplete="tel" />
</div>
</div>
<div class="form-row">
<label for="f-nachricht">Worum geht es Ihnen? <span>*</span></label>
<textarea id="f-nachricht" name="nachricht" rows="4" required
placeholder="Kurz Ihr Anliegen — wir kümmern uns um die Details."></textarea>
placeholder="Kurz Ihr Anliegen, wir kümmern uns um die Details."></textarea>
</div>
<!-- Honeypot gegen Spam -->
<div class="hp" aria-hidden="true">
+13 -4
View File
@@ -46,8 +46,9 @@
function validate() {
var ok = true;
["f-name", "f-email", "f-nachricht"].forEach(function (id) {
["f-vorname", "f-nachname", "f-email", "f-nachricht"].forEach(function (id) {
var el = document.getElementById(id);
if (!el) return;
var row = fieldRow(el);
var valid = el.value.trim() !== "";
if (id === "f-email" && valid) {
@@ -68,14 +69,22 @@
}
var btn = form.querySelector("button[type=submit]");
var vorname = form.vorname.value.trim();
var nachname = form.nachname.value.trim();
var firmenname = form.firmenname.value.trim();
var branche = form.branche.value.trim();
var payload = {
name: form.name.value.trim(),
firma: form.firma.value.trim(),
name: (vorname + " " + nachname).trim(),
vorname: vorname,
nachname: nachname,
firma: firmenname + (branche ? " (" + branche + ")" : ""),
firmenname: firmenname,
branche: branche,
email: form.email.value.trim(),
telefon: form.telefon.value.trim(),
nachricht: form.nachricht.value.trim(),
website: form.website.value.trim(), // Honeypot
quelle: "Messe — Landing Page"
quelle: "Landing Page"
};
if (btn) { btn.disabled = true; btn.textContent = "Wird gesendet …"; }