Envio normal gratuito para valores superiores a 99 EUR
Pesquisar

Presentes empresariais

Pedido de informaçõesi

Adicionou produtos à sua questão Indique as quantidades desejadas e preencha o formulário. Será contactado por um dos nossos representantes.

Não adicionou quaisquer produtos à sua questão. Clique na hiperligação para ver e adicionar produtos à sua questão para obter um orçamento mais exato ou continue sem adicionar produtos.

Kérjük, adja meg adatait, és egyik Céges Ajándékok fiókvezetőnk felveszi Önnel a kapcsolatot.
Salutation *
Asszony/hölgy
Úr
Nome próprio *
Apelido *
Cargo
Nome da empresa *
Selecione um país *
Afganisztán
Aland-szigetek
Albánia
Algéria
Amerikai Egyesült Államok
Amerikai Szamoa
Andorra
Angola
Anguilla
Antarktisz
Antigua és Barbuda
Argentína
Aruba
Ausztria
Ausztrália
Az Egyesült Államok külső szigetei
Azerbajdzsán
Bahama-szigetek
Bahrein
Banglades
Barbados
Belgium
Belize
Benin
Bermuda
Bhután
Bissau-Guinea
Bolívia
Bonaire, Szent Eustatius és Saba
Bosznia és Hercegovina
Botswana
Bouvet-sziget
Brazília
Brit Indiai-óceáni Terület
Brunei Darussalam
Bulgária
Burkina Faso
Burundi
Chile
Ciprus
Comore-szigetek
Cook-szigetek
Costa Rica
Cseh Köztársaság
Csád
Curaçao
Dominika
Dominikai Köztársaság
Dzsibuti
Dánia
Dél-Afrika
Dél-Georgia és a Déli Sandwich-szigetek
Ecuador
Egyenlítői-Guinea
Egyesült Arab Emírségek
Egyesült Királyság
Egyiptom
El Salvador
Elefántcsontpart
Eritrea
Etiópia
Falkland-szigetek
Faroe-szigetek
Fehéroroszország
Fidzsi-szigetek
Finnország
Francia Déli területek
Francia Guyana
Francia Polinézia
Franciaország
Fülöp-szigetek
Gabon
Gambia
Ghána
Gibraltár
Grenada
Grönland
Grúzia
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guyana
Görögország
Haiti
Heard-sziget és McDonald-szigetek
Hollandia
Honduras
Hongkong KKT
Horvátország
India
Indonézia
Irak
Irán
Izland
Izrael
Jamaica
Japán
Jemen
Jersey
Jordánia
Kajmán-szigetek
Kambodzsa
Kamerun
Kanada
Karácsony-sziget
Katar
Kazahsztán
Kelet-Timor
Kenya
Kirgizisztán
Kiribati
Kolumbia
Kongó
Kongói Demokratikus Köztársaság
Kontinentális Kína
Koreai Köztársaság
Koreai Népi Demokratikus Köztársaság
Koszovó
Kuba
Kuvait
Kókusz (Keeling)-szigetek
Közép-Afrikai Köztársaság
Laoszi Népi Demokratikus Köztársaság
Lengyelország
Lesotho
Lettország
Libanon
Libéria
Liechtenstein
Litvánia
Luxemburg
Líbiai Arab Dzsamahiriya
Macedónia
Madagaszkár
Magyarország
Makaó KKT
Malajzia
Malawi
Maldív-szigetek
Mali
Man-sziget
Marokkó
Marshall-szigetek
Martinique
Mauritius
Mauritánia
Mayotte
Mexikó
Mianmar
Mikronéziai Szövetségi Államok
Moldova
Monaco
Mongólia
Montenegró
Montserrat
Mozambik
Málta
Namíbia
Nauru
Nepál
Nicaragua
Niger
Nigéria
Niue
Norfolk-sziget
Norvégia
Nyugat-Szahara
Németország
Olaszország
Omán
Pakisztán
Palau
Palesztin Terület
Panama
Paraguay
Peru
Pitcairn
Portugália
Puerto Rico
Pápua Új-Guinea
Románia
Ruanda
Réunion
Saint Kitts és Nevis
Saint Martin (francia rész)
Saint Pierre és Miquelon
Saint Vincent és a Grenadine-szigetek
San Marino
Seychelle-szigetek
Sierra Leone
Sint Maarten (holland rész)
Spanyolország
Srí Lanka
Suriname
Svalbard és Jan Mayen
Svájc
Svédország
Szamoa
Szaúd-Arábia
Szenegál
Szent Barthélemy
Szent Ilona, Ascension és Tristan da Cunha
Szent Lucia
Szentszék (Vatikánváros)
Szerbia
Szingapúr
Szlovákia
Szlovénia
Szolomon-szigetek
Szomália
Szudán
Szváziföld
Szíriai Arab Köztársaság
São Tomé és Príncipe
Tajvan
Tanzánia
Thaiföld
Togo
Tokelau
Tonga
Trinidad és Tobago
Tunézia
Turks-és Caicos-szigetek
Tuvalu
Tádzsikisztán
Törökország
Türkmenisztán
Uganda
Ukrajna
Uruguay
Vanuatu
Venezuela
Vietnam
Virgin-szigetek, Egyesült Államok
Virgin-szigetek, brit
Wallis és Futuna
Zambia
Zimbabwe
Zöld-fok
Észak Mariana szigetek
Észtország
Írország
Örményország
Új-Kaledónia
Új-Zéland
Üzbegisztán
Telefone *
E‑mail profissional *
Potwierdź firmowy adres e-mail  *
Número de funcionários *
1-10 alkalmazott
11-50 alkalmazott
51-200 alkalmazott
201-500 alkalmazott
501-1,000 alkalmazott
1,001-5,000 alkalmazott
5,001-10,000 alkalmazott
>10,000 alkalmazott
Restam 1000 caracteres
* Campos obrigatórios
.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: 'Selecione um título', message_en: 'Selecione um título' } } }, '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('Só são permitidas letras'); messagesEN.push('Só são permitidas letras'); 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('Comprimento mínimo de 2 caracteres'); messagesEN.push('Comprimento mínimo de 2 caracteres'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Introduza o seu nome próprio.', message_en: 'Introduza o seu nome próprio.' }, stringLength: { message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo', 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('Só são permitidas letras'); messagesEN.push('Só são permitidas letras'); 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('Comprimento mínimo de 2 caracteres'); messagesEN.push('Comprimento mínimo de 2 caracteres'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Introduza o seu apelido.', message_en: 'Introduza o seu apelido.' }, stringLength: { message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_jobTitle]': { trigger: 'blur', validators: { stringLength: { message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_companyName]': { trigger: 'blur', validators: { notEmpty: { message: 'Introduza o nome da sua empresa.', message_en: 'Introduza o nome da sua empresa.' }, stringLength: { message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo', 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: 'Introduza o seu endereço de e‑mail profissional.', message_en: 'Introduza o seu endereço de e‑mail profissional.' }, notEmpty: { message: 'Introduza o seu endereço de e‑mail profissional.', message_en: 'Introduza o seu endereço de e‑mail profissional.' }, stringLength: { message: 'Este campo deve ter entre 0 e 70 caracteres', 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: 'Introduza o seu endereço de e‑mail profissional.', message_en: 'Introduza o seu endereço de e‑mail profissional.' }, notEmpty: { message: 'Introduza o seu endereço de e‑mail profissional.', message_en: 'Introduza o seu endereço de e‑mail profissional.' }, stringLength: { message: 'Este campo deve ter entre 0 e 70 caracteres', 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: 'Os campos não coincidem.', message_en: 'The fields do not match.' } } }, 'values[corporateGiftsContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Introduza o seu país\/a sua região.', message_en: 'Introduza o seu país\/a sua região.' } } }, '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('Introduza o seu número de telefone (apenas números, sem espaços)'); messagesEN.push('Introduza o seu número de telefone (apenas números, sem espaços)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Introduza o seu número de telefone', message_en: 'Introduza o seu número de telefone' }, stringLength: { message: 'Ultrapassou o comprimento máximo de 20 carateres para este campo', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Introduza o seu número de telefone', message_en: 'Introduza o seu número de telefone', 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: 'Introduza o motivo do contacto', message_en: 'Introduza o motivo do contacto' }, stringLength: { message: 'Este campo deve ter entre 0 e 1000 caracteres', 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(); } };