Sigorta teklif formu

Teklif isteyin. Form istediğiniz teminatı toplar, sağlık geçmişini değil.

Bu form bir sigorta sözleşmesi ya da hasarın yasal kaydı değildir. Teklif veya kayıt için gereken kadarını gönderin. Sağlık verisi GDPR'de özel niteliklidir; talep onsuz işlenebiliyorsa eklemeyin.

Önizleme

Teminat

İletişim

Ayrıntılar

Onay

Form kodu

HTML
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Insurance quote form</title>
<style>
  body { font-family: "Segoe UI", sans-serif; color: #12263a; margin: 0; background: #fff; }
  main { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }
  h1 { font-size: 28px; font-weight: 650; letter-spacing: -0.02em; line-height: 1.2; }
  h2 { font-size: 18px; margin: 18px 0 0; }
  p { line-height: 1.5; }
  form { display: grid; gap: 14px; position: relative; }
  .field { display: grid; gap: 6px; }
  label span, .check span { font-size: 14px; }
  input, select, textarea { font: inherit; color: inherit; padding: 10px 12px; border: 1px solid #b4bdce; border-radius: 8px; width: 100%; box-sizing: border-box; background: #fff; }
  textarea { min-height: 96px; }
  .check { display: flex; gap: 8px; align-items: flex-start; }
  .check input { width: auto; margin-top: 4px; }
  button { background: #3c4ad8; color: #fff; border: 0; border-radius: 8px; padding: 12px 18px; font: inherit; cursor: pointer; }
  .note { background: #fff6eb; padding: 12px 14px; border-radius: 8px; }
  form [data-show-if] { display: none; }
form:has(select[name="currently_insured"] option[value="yes"]:checked) [data-show-if="currently_insured"][data-show-equals="yes"] { display: grid; }
</style>
</head>
<body>
<main>
<h1 data-i18n="title">Insurance quote form</h1>
<p data-i18n="lede">Ask for a quote. The form collects the cover you want, not a medical history.</p>
<p class="note" data-i18n="disclaimer">This form is not an insurance contract or a legal record of a claim. Send only what is needed to quote or register the request. Health details are special-category data under the GDPR — leave them out unless the request cannot be handled without them.</p>

<form id="fg-form" action="https://formgong.com/submit" method="POST">
<input type="hidden" name="access_key" value="fk_your_access_key">
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden"><label>Leave this field empty<input name="botcheck" tabindex="-1" autocomplete="off"></label></div>
<section><h2 data-i18n="section.cover">Cover</h2>
<div class="field"><label for="fg-cover_type"><span data-i18n="cover_type">What should the quote cover?</span></label><select id="fg-cover_type" name="cover_type" required><option value="">—</option><option value="auto" data-i18n="cover_type.auto">Car</option><option value="home" data-i18n="cover_type.home">Home</option><option value="travel" data-i18n="cover_type.travel">Travel</option><option value="business" data-i18n="cover_type.business">Business</option></select></div>
<div class="field"><label for="fg-city"><span data-i18n="city">City</span></label><input id="fg-city" name="city" type="text" required maxlength="80" autocomplete="address-level2"></div>
<div class="field"><label for="fg-start_date"><span data-i18n="start_date">Cover from</span></label><input id="fg-start_date" name="start_date" type="date" required></div></section>
<section><h2 data-i18n="section.contact">Contact</h2>
<div class="field"><label for="fg-name"><span data-i18n="name">Name</span></label><input id="fg-name" name="name" type="text" required maxlength="80" autocomplete="name"></div>
<div class="field"><label for="fg-email"><span data-i18n="email">Email</span></label><input id="fg-email" name="email" type="email" required maxlength="120" autocomplete="email"></div>
<div class="field"><label for="fg-phone"><span data-i18n="phone">Phone</span></label><input id="fg-phone" name="phone" type="tel" required maxlength="40" autocomplete="tel"></div></section>
<section><h2 data-i18n="section.details">Details</h2>
<div class="field"><label for="fg-currently_insured"><span data-i18n="currently_insured">Do you already have this cover?</span></label><select id="fg-currently_insured" name="currently_insured" required><option value="">—</option><option value="yes" data-i18n="currently_insured.yes">Yes</option><option value="no" data-i18n="currently_insured.no">No</option></select></div>
<div class="field" data-show-if="currently_insured" data-show-equals="yes"><label for="fg-insurer_name"><span data-i18n="insurer_name">Current insurer</span></label><input id="fg-insurer_name" name="insurer_name" type="text" maxlength="80" autocomplete="name"></div>
<div class="field"><label for="fg-details"><span data-i18n="details">What should the quote include?</span></label><textarea id="fg-details" name="details" required maxlength="800"></textarea></div></section>
<section><h2 data-i18n="section.consent">Consent</h2>
<div class="field"><label class="check"><input id="fg-consent_contact" name="consent_contact" type="checkbox" value="yes" required><span data-i18n="consent_contact">I agree to be contacted about this request.</span></label></div>
<div class="field"><label class="check"><input id="fg-consent_privacy" name="consent_privacy" type="checkbox" value="yes" required><span data-i18n="consent_privacy">I agree that these answers are stored so the request can be handled.</span></label></div></section>
<!-- Turnstile hook: enable Turnstile on this form in Formgong, then set your site key.
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY"></div>
-->
<button type="submit" data-i18n="submit">Send</button>
<p data-status role="status"></p>
</form>
</main>
<script type="application/json" id="fg-labels">{"uk":{"title":"Форма запиту страхової пропозиції","lede":"Запит пропозиції. Форма збирає вид покриття, а не медичну історію.","submit":"Надіслати","thanks":"Надіслано. Дякуємо.","file_too_big":"Файл більший за 24 КБ. Додайте посилання.","disclaimer":"Ця форма не є договором страхування і не є юридичним записом про випадок. Надсилайте лише те, що потрібно для розрахунку чи реєстрації заявки. Дані про здоров'я — особлива категорія за GDPR: не додавайте їх, якщо без них заявку можна обробити.","section.cover":"Покриття","cover_type":"Що має покривати пропозиція?","cover_type.auto":"Авто","cover_type.home":"Житло","cover_type.travel":"Подорож","cover_type.business":"Бізнес","city":"Місто","start_date":"Початок покриття","section.contact":"Контакт","name":"Ім'я","email":"Електронна пошта","phone":"Телефон","section.details":"Деталі","currently_insured":"Це покриття вже є?","currently_insured.yes":"Так","currently_insured.no":"Ні","insurer_name":"Поточний страховик","details":"Що включити в пропозицію?","section.consent":"Згода","consent_contact":"Погоджуюсь, щоб зі мною зв'язалися щодо цієї заявки.","consent_privacy":"Погоджуюсь, що ці відповіді зберігаються, щоб заявку можна було обробити."},"en":{"title":"Insurance quote form","lede":"Ask for a quote. The form collects the cover you want, not a medical history.","submit":"Send","thanks":"Sent. Thank you.","file_too_big":"That file is over 24 KB. Paste a link instead.","disclaimer":"This form is not an insurance contract or a legal record of a claim. Send only what is needed to quote or register the request. Health details are special-category data under the GDPR — leave them out unless the request cannot be handled without them.","section.cover":"Cover","cover_type":"What should the quote cover?","cover_type.auto":"Car","cover_type.home":"Home","cover_type.travel":"Travel","cover_type.business":"Business","city":"City","start_date":"Cover from","section.contact":"Contact","name":"Name","email":"Email","phone":"Phone","section.details":"Details","currently_insured":"Do you already have this cover?","currently_insured.yes":"Yes","currently_insured.no":"No","insurer_name":"Current insurer","details":"What should the quote include?","section.consent":"Consent","consent_contact":"I agree to be contacted about this request.","consent_privacy":"I agree that these answers are stored so the request can be handled."},"pl":{"title":"Formularz zapytania o ofertę ubezpieczenia","lede":"Zapytanie o ofertę. Formularz zbiera rodzaj ochrony, nie wywiad zdrowotny.","submit":"Wyślij","thanks":"Wysłano. Dziękujemy.","file_too_big":"Plik ma ponad 24 KB. Wklej link.","disclaimer":"Ten formularz nie jest umową ubezpieczenia ani prawnym zapisem szkody. Podaj tylko to, co jest potrzebne do wyceny lub rejestracji zgłoszenia. Dane o zdrowiu to szczególna kategoria w RODO — pomiń je, jeśli zgłoszenie da się obsłużyć bez nich.","section.cover":"Ochrona","cover_type":"Czego ma dotyczyć oferta?","cover_type.auto":"Samochód","cover_type.home":"Dom","cover_type.travel":"Podróż","cover_type.business":"Firma","city":"Miasto","start_date":"Ochrona od","section.contact":"Kontakt","name":"Imię","email":"E-mail","phone":"Telefon","section.details":"Szczegóły","currently_insured":"Czy masz już takie ubezpieczenie?","currently_insured.yes":"Tak","currently_insured.no":"Nie","insurer_name":"Obecny ubezpieczyciel","details":"Co oferta ma uwzględnić?","section.consent":"Zgoda","consent_contact":"Zgadzam się na kontakt w sprawie tego zgłoszenia.","consent_privacy":"Zgadzam się, aby te odpowiedzi zostały zapisane w celu obsługi zgłoszenia."},"tr":{"title":"Sigorta teklif formu","lede":"Teklif isteyin. Form istediğiniz teminatı toplar, sağlık geçmişini değil.","submit":"Gönder","thanks":"Gönderildi. Teşekkürler.","file_too_big":"Dosya 24 KB'den büyük. Bağlantı ekleyin.","disclaimer":"Bu form bir sigorta sözleşmesi ya da hasarın yasal kaydı değildir. Teklif veya kayıt için gereken kadarını gönderin. Sağlık verisi GDPR'de özel niteliklidir; talep onsuz işlenebiliyorsa eklemeyin.","section.cover":"Teminat","cover_type":"Teklif neyi kapsasın?","cover_type.auto":"Araç","cover_type.home":"Konut","cover_type.travel":"Seyahat","cover_type.business":"İşletme","city":"Şehir","start_date":"Teminat başlangıcı","section.contact":"İletişim","name":"Ad","email":"E-posta","phone":"Telefon","section.details":"Ayrıntılar","currently_insured":"Bu teminatınız var mı?","currently_insured.yes":"Evet","currently_insured.no":"Hayır","insurer_name":"Mevcut sigortacı","details":"Teklif neyi içersin?","section.consent":"Onay","consent_contact":"Bu talep hakkında benimle iletişime geçilmesini kabul ediyorum.","consent_privacy":"Bu yanıtların talebin işlenmesi için saklanmasını kabul ediyorum."}}</script>
<script>
(function () {
  var MAX = 24576;
  var form = document.getElementById("fg-form");
  var packNode = document.getElementById("fg-labels");
  if (!form || !packNode) return;
  var pack = JSON.parse(packNode.textContent);
  function code() {
    var q = new URLSearchParams(location.search).get("lang") || "";
    var raw = (q || document.documentElement.lang || (navigator.language || "en")).slice(0, 2).toLowerCase();
    return pack[raw] ? raw : "en";
  }
  function apply() {
    var dict = pack[code()];
    document.querySelectorAll("[data-i18n]").forEach(function (node) {
      var key = node.getAttribute("data-i18n");
      if (key && typeof dict[key] === "string") node.textContent = dict[key];
    });
  }
  apply();
  var status = form.querySelector("[data-status]");
  form.addEventListener("submit", function (event) {
    event.preventDefault();
    var dict = pack[code()];
    var body = {};
    var files = [];
    new FormData(form).forEach(function (value, key) {
      if (typeof File !== "undefined" && value instanceof File) {
        if (value.size) files.push([key, value]);
        return;
      }
      body[key] = String(value);
    });
    if (files.some(function (pair) { return pair[1].size > MAX; })) {
      if (status) status.textContent = dict.file_too_big;
      return;
    }
    Promise.all(files.map(function (pair) {
      return readFile(pair[1]).then(function (data) {
        body[pair[0] + "_filename"] = pair[1].name;
        body[pair[0] + "_data"] = data;
      });
    })).then(function () {
      return fetch(form.action, {
        method: "POST",
        headers: { "Content-Type": "application/json", Accept: "application/json" },
        body: JSON.stringify(body)
      });
    }).then(function (response) { return response.json(); }).then(function (result) {
      if (status) status.textContent = result && result.success ? dict.thanks : ((result && result.message) || "error");
    }).catch(function () {
      if (status) status.textContent = "error";
    });
  });
  function readFile(file) {
    return new Promise(function (resolve, reject) {
      var reader = new FileReader();
      reader.onload = function () {
        var raw = String(reader.result || "");
        var comma = raw.indexOf(",");
        resolve(comma === -1 ? raw : raw.slice(comma + 1));
      };
      reader.onerror = function () { reject(reader.error); };
      reader.readAsDataURL(file);
    });
  }
})();
</script>
</body>
</html>