Bezpłatna standardowa wysyłka dla zamówień powyżej 420 PLN
Zoeken

Relatiegeschenken

Informatieverzoeki

U hebt producten aan uw aanvraag toegevoegd. Geef de gewenste hoeveelheden aan en vul het formulier in. Een van onze vertegenwoordigers neemt contact met u op.

U hebt geen producten aan uw aanvraag toegevoegd. Klik op de link om producten te bekijken en aan uw aanvraag toe te voegen voor een nauwkeurigere offerte, of ga verder zonder producten.

Wprowadź swoje dane, aby mógł skontaktować się z Tobą jeden z naszych opiekunów ds. upominków firmowych.
Salutation *
Pani
Pan
Voornaam *
Achternaam *
Functie
Bedrijfsnaam *
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
Telefoonnr. *
Zakelijk e-mailadres *
Bevestig zakelijk e-mailadres  *
Aantal medewerkers *
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 tekens over
* Verplichte velden
.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 = 'corporateGiftsContactForm'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'corporateGiftsContactFormDefinition'; } 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('#corporateGiftsContactFormConfigWrapper').find('.js-corporateGiftsContactFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[corporateGiftsContactFormDefinition_title]': { trigger: 'change', validators: { notEmpty: { message: 'Selecteer een aanhef', message_en: 'Selecteer een aanhef' } } }, 'values[corporateGiftsContactFormDefinition_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('Alleen letters zijn toegestaan'); messagesEN.push('Alleen letters zijn toegestaan'); 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('Minimale lengte is 2 tekens'); messagesEN.push('Minimale lengte is 2 tekens'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Voer je voornaam in.', message_en: 'Voer je voornaam in.' }, stringLength: { message: 'Je hebt de maximale lengte van 40 tekens voor dit veld overschreden', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_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('Alleen letters zijn toegestaan'); messagesEN.push('Alleen letters zijn toegestaan'); 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('Minimale lengte is 2 tekens'); messagesEN.push('Minimale lengte is 2 tekens'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Voer je achternaam in.', message_en: 'Voer je achternaam in.' }, stringLength: { message: 'Je hebt de maximale lengte van 40 tekens voor dit veld overschreden', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_jobTitle]': { trigger: 'blur', validators: { stringLength: { message: 'Je hebt de maximale lengte van 40 tekens voor dit veld overschreden', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_companyName]': { trigger: 'blur', validators: { notEmpty: { message: 'Voer uw bedrijfsnaam in.', message_en: 'Voer uw bedrijfsnaam in.' }, stringLength: { message: 'Je hebt de maximale lengte van 40 tekens voor dit veld overschreden', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_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: 'Voer uw zakelijk e-mailadres in.', message_en: 'Voer uw zakelijk e-mailadres in.' }, notEmpty: { message: 'Voer uw zakelijk e-mailadres in.', message_en: 'Voer uw zakelijk e-mailadres in.' }, stringLength: { message: 'Het aantal tekens voor dit veld moet tussen 0 en 70 liggen', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, } }, 'values[corporateGiftsContactFormDefinition_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: 'Voer uw zakelijk e-mailadres in.', message_en: 'Voer uw zakelijk e-mailadres in.' }, notEmpty: { message: 'Voer uw zakelijk e-mailadres in.', message_en: 'Voer uw zakelijk e-mailadres in.' }, stringLength: { message: 'Het aantal tekens voor dit veld moet tussen 0 en 70 liggen', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, identical: { field: 'values[corporateGiftsContactFormDefinition_email]', message: 'De velden komen niet overeen.', message_en: 'The fields do not match.' } } }, 'values[corporateGiftsContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Voer je land\/regio in.', message_en: 'Voer je land\/regio in.' } } }, 'values[corporateGiftsContactFormDefinition_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('voer je telefoonnummer in (alleen cijfers, geen spaties)'); messagesEN.push('voer je telefoonnummer in (alleen cijfers, geen spaties)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Voer je telefoonnummer in', message_en: 'Voer je telefoonnummer in' }, stringLength: { message: 'Je hebt de maximale lengte van 20 tekens voor dit veld overschreden', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Voer je telefoonnummer in', message_en: 'Voer je telefoonnummer in', 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[corporateGiftsContactFormDefinition_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[corporateGiftsContactFormDefinition_message]': { trigger: 'blur', validators: { notEmpty: { message: 'Vul uw contactreden in', message_en: 'Vul uw contactreden in' }, stringLength: { message: 'Het aantal tekens voor dit veld moet tussen 0 en 1000 liggen', 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 = 'corporateGiftsContactForm'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'corporateGiftsContactFormDefinition'; } 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(); } };