Widerrufs­formular

document.addEventListener("DOMContentLoaded", function() { // Greift das Formular var form = document.querySelector('form'); if (form) { // 1. Honeypot-Feld dynamisch einbauen var honeyInput = document.createElement('input'); honeyInput.type = 'text'; honeyInput.name = 'confirm_website_hp'; honeyInput.style.display = 'none'; form.appendChild(honeyInput); // 2. Event-Listener in der Capture-Phase nutzen (fängt das Event vor Vue/Ceres ab) form.addEventListener('submit', function(e) { // Eingabefeld für Auftragsnummer suchen var orderInput = form.querySelector('input[name*="order"], input[name*="auftrag"], input[name*="order_id"]'); // REGEX-MUSTER (Anpassen falls nötig: hier 5 bis 8 reine Ziffern) var orderPattern = /^[0-9]{4}$/; var isHoneypotSpam = (honeyInput.value !== ''); var isInvalidOrder = (orderInput && !orderPattern.test(orderInput.value.trim())); // Wenn Spam ODER falsche Auftragsnummer -> HARTER STOPP if (isHoneypotSpam || isInvalidOrder) { // Stoppt die Aktion komplett & verhindert, dass Plenty/Vue-AJAX ausgeführt wird e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); if (isInvalidOrder && !isHoneypotSpam) { alert("Bitte gib eine gültige Auftragsnummer ein."); orderInput.focus(); } return false; } }, true); // <- Das 'true' (Capture Phase) ist der Schlüssel für Ceres! } });