⌘K
B
Ben

Anfrage-Formulare

Fertige Formulare für deine Branche (sonstige). Kopier den Embed-Code auf die Website — jede Anfrage landet automatisch im Posteingang.

Kontaktanfrage

Allgemeine Anfrage — passt für fast jeden Betrieb.

Felder
  • Name · Text · Pflicht
  • E-Mail · E-Mail · Pflicht
  • Telefon · Telefon
  • Worum geht es? · Auswahl
  • Wann erreichen wir Sie am besten? · Text · Pflicht · ↳ nur wenn „Worum geht es?" = Rückruf gewünscht
  • Ihr Anliegen · Textfeld · Pflicht
Gehostete Version (Link statt Embed, gleiches Formular): https://kaizen-os.k-aizen.de/formular/kontakt
Embed-Code (auf Website einfügen)
<form id="kaizen-kontakt">
    <label data-kz="name">Name
      <input type="text" name="name" required />
    </label>
    <label data-kz="email">E-Mail
      <input type="email" name="email" required />
    </label>
    <label data-kz="phone">Telefon
      <input type="tel" name="phone" />
    </label>
    <label data-kz="anliegen_art">Worum geht es?
      <select name="anliegen_art">
        <option value="">Bitte wählen…</option>
        <option value="Allgemeine Frage">Allgemeine Frage</option>
        <option value="Angebot anfragen">Angebot anfragen</option>
        <option value="Rückruf gewünscht">Rückruf gewünscht</option>
      </select>
    </label>
    <label data-kz="rueckruf_zeit">Wann erreichen wir Sie am besten?
      <input type="text" name="rueckruf_zeit" required />
    </label>
    <label data-kz="message">Ihr Anliegen
      <textarea name="message" required></textarea>
    </label>
    <input type="text" name="website" style="display:none" tabindex="-1" autocomplete="off" />
    <button type="submit">Absenden</button>
  </form>
<script>
(function () {
  var form = document.getElementById("kaizen-kontakt");
  var rules = [{"name":"rueckruf_zeit","field":"anliegen_art","equals":"Rückruf gewünscht","required":true}];
  function val(name) {
    var el = form.elements[name];
    if (!el) return "";
    if (el.type === "checkbox") return el.checked ? "ja" : "";
    return (el.value || "").trim();
  }
  function ruleFor(name) {
    for (var i = 0; i < rules.length; i++) if (rules[i].name === name) return rules[i];
    return null;
  }
  function visible(name, seen) {
    var r = ruleFor(name);
    if (!r) return true;
    seen = seen || {};
    if (seen[name]) return true;
    seen[name] = true;
    var v = val(r.field);
    var ok = r.oneOf ? r.oneOf.indexOf(v) !== -1 : v === r.equals;
    return ok && visible(r.field, seen);
  }
  function apply() {
    for (var i = 0; i < rules.length; i++) {
      var r = rules[i];
      var wrap = form.querySelector('[data-kz="' + r.name + '"]');
      var el = form.elements[r.name];
      if (!wrap || !el) continue;
      var show = visible(r.name);
      wrap.style.display = show ? "" : "none";
      // Unsichtbares required würde den Browser-Submit blockieren.
      if (el.required !== undefined) el.required = show && r.required;
    }
  }
  form.addEventListener("change", apply);
  form.addEventListener("input", apply);
  apply();
  form.addEventListener("submit", async function (e) {
    e.preventDefault();
    var known = ["name", "email", "phone", "message", "website"];
    var extra = {};
    var body = { formSlug: "kontakt", extra: extra };
    new FormData(form).forEach(function (v, k) {
      if (!visible(k)) return; // Werte versteckter Felder nie mitsenden
      if (known.indexOf(k) !== -1) body[k] = v;
      else extra[k] = v;
    });
    var r = await fetch("https://kaizen-os.k-aizen.de/api/forms/submit", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(body),
    });
    form.innerHTML = r.ok ? "Danke! Wir melden uns." : "Etwas ging schief.";
  });
})();
</script>