Form: Vorname/Nachname + Branche, Hero ohne Leistungen-Button
Deploy / build-and-deploy (push) Successful in 21s
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:
1 parent
9d75831130
commit
9ecfc015b1
2 files changed
+33
-13
No files matched your search
+20
-9
@@ -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
@@ -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 …"; }
|
||||
|
||||
Reference in new issue
Block a user