window.addEventListener("message", function(event) {
if(event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormReady') {
// Abbruch, falls im Editor
//if (window.hsInEditor) {
// return;
// }
/* TELEFON VALIDIERUNG*/
var phoneField = document.querySelector('.hs-input[name="phone"]');
var error_rollup = document.querySelector('.hs_error_rollup');
var error_html = '
';
var error_rollup_html = '';
phoneField.addEventListener('blur', function() {
var phoneNumber = phoneField.value;
var phoneNumberWithoutSpaces = phoneNumber.replace(/\s+/g, '');
var phoneNumberRegex = /^(00|\+49|0)[1-9][0-9\s]{2,14}$/;
var errorMsg = phoneField.parentNode.querySelector('.hs-error-msgs');
// If the field is empty, skip the validation and remove error messages
if (!phoneNumber) {
if (errorMsg) errorMsg.innerHTML = "";
phoneField.classList.remove('invalid', 'error');
return; // Exit the function early
}
if (!phoneNumberRegex.test(phoneNumber) || phoneNumberWithoutSpaces.length > 15) {
// Create error message element if it doesn't already exist
if (!errorMsg) {
errorMsg = document.createElement('div');
errorMsg.className = 'hs-error-msgs inputs-list';
phoneField.parentNode.appendChild(errorMsg);
}
errorMsg.innerHTML = '';
phoneField.classList.add('invalid', 'error'); // Add class to show red border
} else {
if (errorMsg) errorMsg.innerHTML = ""; // Clear error message if it exists
phoneField.classList.remove('invalid', 'error'); // Remove class to remove red border
}
});
// Prevent form submit if there are still errors
let submit_button = document.querySelector(".hs-submit [type='submit']");
submit_button.addEventListener("click", function(event) {
phoneField.blur(); // make sure that outdated error messages are gone
if (phoneField.classList.contains("invalid")) {
event.preventDefault();
if (!error_rollup) {
error_rollup = document.createElement('div');
error_rollup.className = "hs_error_rollup";
error_rollup.innerHTML = error_rollup_html;
submit_button.before(error_rollup);
}
}
});
/* WERBECODE HANDLING */
let werbecode = document.querySelector('.hs-input[name="aktuellsterwerbecode"]');
let werbecode_phone = document.querySelector('.hs-input[name="aktuellsterwerbecode_telefon_temp"]');
let telField = document.querySelector('.hs-input[type="tel"]');
if (werbecode !== null && werbecode_phone !== null && telField !== null) {
werbecode_value = werbecode.value;
werbecode_phone_value = werbecode_phone.value;
telField.onchange = function() {
console.log("Telefonnummer geaendert");
}
telField.onblur = function() {
if (telField.value.length != 0 && !(telField.classList.contains('invalid'))) {
werbecode.value = werbecode_phone_value;
console.log("Gueltige Telefonnummer eingegeben");
} else {
werbecode.value = werbecode_value;
}
}
}
}
}); //addEventListener