Δωρεάν κανονική αποστολή άνω των 99 EUR
Αναζήτηση
* Υποχρεωτικά πεδία
Salutation *
Κα
Κος
Όνομα *
Επώνυμο *
Τίτλος εργασίας
Επωνυμία εταιρείας *
Please select a country... *
Afganistan
Albania
Algieria
Andora
Angola
Anguilla
Antarktyka
Antigua i Barbuda
Arabia Saudyjska
Argentyna
Armenia
Aruba
Australia
Austria
Azerbejdżan
Bahamy
Bahrajn
Bangladesz
Barbados
Belgia
Belize
Benin
Bermudy
Bhutan
Białoruś
Boliwia
Botswana
Bośnia i Hercegowina
Brazylia
Brunei Darussalam
Brytyjskie Terytorium Oceanu Indyjskiego
Brytyjskie Wyspy Dziewicze
Burkina Faso
Burundi
Bułgaria
Chile
Chiny
Chorwacja
Curaçao
Cypr
Czad
Czechy
Dalekie Wyspy Mniejsze Stanów Zjednoczonych
Dania
Demokratyczna Republika Konga
Dominika
Dżibuti
Egipt
Ekwador
Erytrea
Estonia
Etiopia
Falklandy
Fidżi
Filipiny
Finlandia
Francja
Francuskie Terytoria Południowe
Gabon
Gambia
Georgia Południowa i Sandwich Południowy
Ghana
Gibraltar
Grecja
Grenada
Grenlandia
Gruzja
Guam
Guernsey
Gujana
Gujana Francuska
Gwadelupa
Gwatemala
Gwinea
Gwinea Bissau
Gwinea Równikowa
Haiti
Hiszpania
Holandia
Holandia Karaibska
Honduras
Hongkong
Indie
Indonezja
Irak
Iran
Irlandia
Islandia
Izrael
Jamajka
Japonia
Jemen
Jersey
Jordania
Kajmany
Kambodża
Kamerun
Kanada
Katar
Kazachstan
Kenia
Kirgistan
Kiribati
Kolumbia
Komory
Kongo
Korea Południowa
Korea Północna
Kostaryka
Kuba
Kuwejt
Laotańska Republika Ludowo-Demokratyczna
Lesotho
Liban
Liberia
Libia
Liechtenstein
Litwa
Luksemburg
Macedonia
Madagaskar
Majotta
Makau
Malawi
Malediwy
Malezja
Mali
Malta
Mariany Północne
Maroko
Martynika
Mauretania
Mauritius
Meksyk
Mjanma
Monako
Mongolia
Montenegro
Montserrat
Mozambik
Mołdawia
Namibia
Nauru
Nepal
Niemcy
Niger
Nigeria
Nikaragua
Niue
Norfolk
Norwegia
Nowa Kaledonia
Nowa Zelandia
Oman
Pakistan
Palau
Panama
Papua-Nowa Gwinea
Paragwaj
Peru
Pitcairn
Polinezja Francuska
Polska
Portoryko
Portugalia
RPA
Republika Dominikany
Republika Środkowoafrykańska
Reunion
Rumunia
Rwanda
Sahara Zachodnia
Saint Kitts i Nevis
Saint Lucia
Saint Martin (część francuska)
Saint Vincent i Grenadyny
Salwador
Samoa
Samoa Amerykańskie
San Marino
Senegal
Serbia
Seszele
Sfederowane Stany Mikronezji
Sierra Leone
Singapur
Sint Maarten (część holenderska)
Somalia
Sri Lanka
Stany Zjednoczone
Suazi
Sudan
Surinam
Svalbard i Jan Mayen
Syryjska Republika Arabska
Szwajcaria
Szwecja
Słowacja
Słowenia
Tadżykistan
Tajlandia
Tajwan
Tanzania
Terytoria palestyńskie
Timor Wschodni
Togo
Tokelau
Tonga
Trinidad i Tobago
Tunezja
Turcja
Turkmenistan
Turks i Caicos
Tuwalu
Uganda
Ukraina
Urugwaj
Uzbekistan
Vanuatu
Wallis i Futuna
Watykan
Wenezuela
Wielka Brytania
Wietnam
Wspólnota Saint Barthélemy
Wspólnota Terytorialna Saint Pierre i Miquelon
Wybrzeże Kości Słoniowej
Wyspa Bouveta
Wyspa Bożego Narodzenia
Wyspa Man
Wyspa Świętej Heleny, Wyspa Wniebowstąpienia i Tristan da Cunha
Wyspy Alandzkie
Wyspy Cooka
Wyspy Dziewicze Stanów Zjednoczonych
Wyspy Heard i McDonald
Wyspy Kokosowe
Wyspy Marshalla
Wyspy Owcze
Wyspy Salomona
Wyspy Zielonego Przylądka
Wyspy Świętego Tomasza i Książęca
Węgry
Włochy
Zambia
Zimbabwe
Zjednoczone Emiraty Arabskie
Łotwa
Τηλέφωνο *
Επαγγελματικό email *
Επιβεβαίωση επιχειρηματικού email  *
Αριθμός εργαζομένων *
1-10 pracownicy
11-50 pracownicy
51-200 pracownicy
201-500 pracownicy
501-1,000 pracownicy
1,001-5,000 pracownicy
5,001-10,000 pracownicy
>10,000 pracownicy
απομένουν 1000 χαρακτήρες
.on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); $(data.element).attr('aria-invalid', 'true'); // Get error messages var messages = data.fv.getMessages(data.element); // ✅ Announce error to screen readers if ($(data.element).closest('.js-advent-calendar-container').length > 0 && messages.length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, true); ACC.adventcalendar.announceToScreenReader('Error: ' + messages[0]); } if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ if ($(data.element).closest('.js-advent-calendar-container').length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, false); } data.fv.disableSubmitButtons(false); // ✅ Remove aria-invalid on field $(data.element).attr('aria-invalid', 'false'); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'professionalCustomersContactForm'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'professionalCustomersContactFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };
$(this).closest('#professionalCustomersContactFormConfigWrapper').find('.js-professionalCustomersContactFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[professionalCustomersContactFormDefinition_title]': { trigger: 'change', validators: { notEmpty: { message: 'Εισαγάγετε έναν τίτλο', message_en: 'Εισαγάγετε έναν τίτλο' } } }, 'values[professionalCustomersContactFormDefinition_firstName]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) { messages.push('Επιτρέπονται μόνο γράμματα'); messagesEN.push('Επιτρέπονται μόνο γράμματα'); errorOccured |= true; } if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) { messages.push('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες'); messagesEN.push('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Εισαγάγετε το όνομά σας.', message_en: 'Εισαγάγετε το όνομά σας.' }, stringLength: { message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_lastName]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) { messages.push('Επιτρέπονται μόνο γράμματα'); messagesEN.push('Επιτρέπονται μόνο γράμματα'); errorOccured |= true; } if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) { messages.push('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες'); messagesEN.push('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Εισαγάγετε το επώνυμό σας.', message_en: 'Εισαγάγετε το επώνυμό σας.' }, stringLength: { message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_jobTitle]': { trigger: 'blur', validators: { stringLength: { message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_companyName]': { trigger: 'blur', validators: { notEmpty: { message: 'Εισαγάγετε την επωνυμία της εταιρείας σας.', message_en: 'Εισαγάγετε την επωνυμία της εταιρείας σας.' }, stringLength: { message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_email]': { trigger: 'blur', validators: { regexp: { regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.$%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?!-)(?!.*\\.-)(?!.*-\\.)(?:[a-zA-Z0-9-]{1,61}\\.){1,126}(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''), message: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.', message_en: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.' }, notEmpty: { message: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.', message_en: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.' }, stringLength: { message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 70', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, } }, 'values[professionalCustomersContactFormDefinition_emailConfirm]': { trigger: 'blur', validators: { regexp: { regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.$%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?!-)(?!.*\\.-)(?!.*-\\.)(?:[a-zA-Z0-9-]{1,61}\\.){1,126}(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''), message: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.', message_en: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.' }, notEmpty: { message: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.', message_en: 'Εισαγάγετε την επαγγελματική διεύθυνση email σας.' }, stringLength: { message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 70', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, identical: { field: 'values[professionalCustomersContactFormDefinition_email]', message: 'Τα πεδία δεν ταιριάζουν.', message_en: 'The fields do not match.' } } }, 'values[professionalCustomersContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Εισαγάγετε τη χώρα\/περιοχή σας.', message_en: 'Εισαγάγετε τη χώρα\/περιοχή σας.' } } }, 'values[professionalCustomersContactFormDefinition_phone]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[\\\\+]{0,1}[0-9\\\\(\\\\)\\- \\\\.]*$', ''))) { messages.push('εισαγάγετε τον αριθμό τηλεφώνου σας. (Μόνο αριθμοί, χωρίς κενά)'); messagesEN.push('εισαγάγετε τον αριθμό τηλεφώνου σας. (Μόνο αριθμοί, χωρίς κενά)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Εισαγάγετε τον αριθμό τηλεφώνου σας', message_en: 'Εισαγάγετε τον αριθμό τηλεφώνου σας' }, stringLength: { message: 'Έχετε υπερβεί το μέγιστο μήκος 20 χαρακτήρων για αυτό το πεδίο', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Εισαγάγετε τον αριθμό τηλεφώνου σας', message_en: 'Εισαγάγετε τον αριθμό τηλεφώνου σας', callback: function (value, validator, $field) { if (value === '') { return true; } var prefixCountry = $field.siblings('.flag-container').children('.selected-flag').attr('title'); var isValidPrefix = prefixCountry !== undefined && prefixCountry !== 'Unknown'; if (!isValidPrefix) { return false; } var prefix = prefixCountry.split("+")[1]; var isMinimumLength = true; var minLength = ""; if (minLength !== null) { if (value.startsWith("+")) { if ((value.length - prefix.length - 1) < minLength) { isMinimumLength = false; } } else if (value.length < minLength) { isMinimumLength = false; } } return isMinimumLength; } }, } }, 'values[professionalCustomersContactFormDefinition_companySize]': { trigger: 'change', validators: { notEmpty: { message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize, error.genericConfigurableForm.companySize\u003C\/span\u003E', message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize, error.genericConfigurableForm.companySize\u003C\/span\u003E' } } }, 'values[professionalCustomersContactFormDefinition_message]': { trigger: 'blur', validators: { notEmpty: { message: 'Συμπληρώστε τον λόγο επικοινωνίας', message_en: 'Συμπληρώστε τον λόγο επικοινωνίας' }, stringLength: { message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 1000', message_en: 'The number of characters for this field must be between 0 and 1000', min: 0 , max: 1000 }, } }, } } ) .on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); $(data.element).attr('aria-invalid', 'true'); // Get error messages var messages = data.fv.getMessages(data.element); // ✅ Announce error to screen readers if ($(data.element).closest('.js-advent-calendar-container').length > 0 && messages.length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, true); ACC.adventcalendar.announceToScreenReader('Error: ' + messages[0]); } if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ if ($(data.element).closest('.js-advent-calendar-container').length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, false); } data.fv.disableSubmitButtons(false); // ✅ Remove aria-invalid on field $(data.element).attr('aria-invalid', 'false'); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'professionalCustomersContactForm'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'professionalCustomersContactFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };

dispatcher-check