n8n-workflow-listmonk-antispam/codes/Anmeldeformular.html

78 lines
No EOL
3.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<form method="post"
action="https://deinn8n.de/webhook/listmonk/subscribe"
class="listmonk-form d2s-newsletter-wide"
id="d2s-newsletter"
novalidate>
<div class="d2s-newsletter-wrap">
<h3 class="d2s-newsletter-title">🚀 Donau2Space Wochenschau</h3>
<p class="d2s-newsletter-desc">
Jeden Sonntag um 18&nbsp;Uhr erscheint die Donau2Space-Wochenschau keine Linkliste,
sondern eine kleine Geschichte über Fortschritte, Tests und Ideen der Woche.
Kurz, ehrlich und ganz ohne Werbung direkt aus Passau. 🌍
</p>
<!-- Liste(n) für Listmonk / n8n → Array oder UUID -->
<input type="hidden" name="lists" value="listmonk-uuid" />
<!-- Anti-Spam -->
<input type="text" name="confirm_email" style="display:none!important" tabindex="-1" autocomplete="off" />
<input type="text" name="website" style="position:absolute;left:-9999px;" tabindex="-1" autocomplete="off" />
<input type="hidden" name="ts" value="" />
<div class="d2s-input-row">
<input type="email" name="email" required placeholder="E-Mail" class="d2s-input" autocomplete="email" />
<input type="text" name="name" placeholder="Name (optional)" class="d2s-input" autocomplete="name" />
</div>
<label class="d2s-checkbox" for="d2s-consent">
<input id="d2s-consent" type="checkbox" name="consent" value="true" required />
<span>Newsletter abonnieren &amp; <a href="https://deinedomain.de/datenschutzerklaerung/" target="_blank">Datenschutz gelesen</a> (erforderlich)</span>
</label>
<button type="submit" class="d2s-btn" disabled>📩 Jetzt anmelden</button>
<!-- Archiv-Hinweis -->
<p class="d2s-newsletter-archive-note">
📡 Alle bisherigen Wochenrückblicke findest du im
<a href="https://donau2space.de/newsletter-archiv/">Newsletter-Archiv</a>.
</p>
</div>
</form>
<script>
(function () {
const form = document.getElementById('d2s-newsletter');
if (!form) return;
const btn = form.querySelector('button[type="submit"]');
const email = form.querySelector('input[name="email"]');
const consent = form.querySelector('#d2s-consent');
const ts = form.querySelector('input[name="ts"]');
// Set timestamp at render
ts.value = Math.floor(Date.now() / 1000);
// Enable button only when valid email + consent
const emailRe = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
const toggle = () => {
const ok = emailRe.test((email.value || '').trim()) && consent.checked;
btn.disabled = !ok;
};
email.addEventListener('input', toggle);
consent.addEventListener('change', toggle);
toggle();
// Optional client-side speed check (UX)
form.addEventListener('submit', function (e) {
const started = parseInt(ts.value || '0', 10);
if (!started || (Date.now() / 1000) - started < 3) {
e.preventDefault();
alert('Bitte 23 Sekunden warten und erneut versuchen.');
return false;
}
// Prevent double submits
btn.disabled = true;
btn.textContent = '⏳ Wird gesendet…';
});
})();
</script>