Spedizione standard gratuita
per importi superiori a 99 EUR

Omaggi aziendali

Richiesta di informazionii

Hai aggiunto dei prodotti alla tua richiesta. Indica le quantità desiderate e compila il modulo. Uno dei nostri responsabili Omaggi aziendali ti contatterà quanto prima.

Non hai aggiunto prodotti alla tua richiesta. Clicca sul link per visualizzare e aggiungere prodotti alla tua richiesta e ottenere un preventivo più dettagliato oppure continua senza prodotti.

โปรดป้อนรายละเอียดและผู้จัดการดูแลลูกค้า Corporate Gifts ของเราจะติดต่อคุณ
Nome *
Cognome *
Ruolo
Nome dell’azienda: *
Scegli un paese, grazie *
กรีซ
กรีนแลนด์
กวม
กัมพูชา
กัวเดอลุป
กัวเตมาลา
กาตาร์
กานา
กาบอง
กายอานา
กินี
กินี-บิสเซา
คองโก
คอสตาริกา
คอโมโรส
คาซัคสถาน
คิริบาส
คิวบา
คีร์กีซสถาน
คูราเซา
คูเวต
จอร์เจีย
จอร์แดน
จาไมกา
จิบูตี
จีนแผ่นดินใหญ่
ชาด
ชิลี
ซานมารีโน
ซามัว
ซาอุดีอาระเบีย
ซาฮาราตะวันตก
ซิมบับเว
ซูดาน
ซูรินาเม
ญี่ปุ่น
ดินแดนปาเลสไตน์
ตรินิแดดและโตเบโก
ตองกา
ติมอร์-เลสเต
ตุรกี
ตูนิเซีย
ตูวาลู
ทาจิกิสถาน
นครรัฐวาติกัน
นอร์เวย์
นามิเบีย
นาอูรู
นิการากัว
นิวซีแลนด์
นิวแคลิโดเนีย
นีอูเอ
บราซิล
บริติชอินเดียนโอเชียนเทร์ริทอรี
บรูไนดารุสซาลาม
บอตสวานา
บอสเนียและเฮอร์เซโกวีนา
บังกลาเทศ
บัลแกเรีย
บาร์เบโดส
บาห์เรน
บาฮามาส
บุรุนดี
บูร์กินาฟาโซ
ประเทศไทย
ปากีสถาน
ปานามา
ปาปัวนิวกินี
ปารากวัย
ปาเลา
ฝรั่งเศส
ฟิจิ
ฟินแลนด์
ฟิลิปปินส์
ภูฏาน
มองโกเลีย
มอนต์เซอร์รัต
มอนเตเนโกร
มอริเชียส
มอริเตเนีย
มอลตา
มอลโดวา
มัลดีฟส์
มาซิโดเนีย
มาดากัสการ์
มายอต
มาร์ตินีค
มาลาวี
มาลี
มาเลเซีย
ยิบรอลตาร์
ยูกันดา
ยูเครน
รวันดา
ลักเซมเบิร์ก
ลัตเวีย
ลิกเตนสไตน์
ลิทัวเนีย
วานูอาตู
วาลลิสและฟุตูนา
ศรีลังกา
สฟาลบาร์และยานไมเอน
สวาซิแลนด์
สวิตเซอร์แลนด์
สวีเดน
สหพันธรัฐไมโครนีเชีย
สหรัฐอาหรับเอมิเรตส์
สหรัฐอเมริกา
สหราชอาณาจักร
สาธารณรัฐประชาธิปไตยคองโก
สาธารณรัฐประชาธิปไตยประชาชนลาว
สาธารณรัฐประชาธิปไตยประชาชนเกาหลี
สาธารณรัฐสังคมนิยมประชาชนอาหรับลิเบีย
สาธารณรัฐอาหรับซีเรีย
สาธารณรัฐเกาหลี
สาธารณรัฐเช็ก
สาธารณรัฐแอฟริกากลาง
สาธารณรัฐโดมินิกัน
สิงคโปร์
สเปน
สโลวาเกีย
สโลวีเนีย
หมู่เกาะคุก
หมู่เกาะนอร์เทิร์นมาเรียนา
หมู่เกาะพิตแคร์น
หมู่เกาะฟอล์กแลนด์
หมู่เกาะมาร์แชลล์
หมู่เกาะรอบนอกของสหรัฐอเมริกา
หมู่เกาะเคย์แมน
หมู่เกาะเติกส์และหมู่เกาะเคคอส
หมู่เกาะเวอร์จินของสหรัฐอเมริกา
หมู่เกาะเวอร์จินของอังกฤษ
หมู่เกาะแฟโร
หมู่เกาะโคโคส (หมู่เกาะคีลิง)
หมู่เกาะโซโลมอน
หมู่เกาะโบแนเรอ ซินต์เอิสตาซียึส และซาบา
หมู่เกาะโอลันด์
ออสเตรีย
ออสเตรเลีย
อันดอร์รา
อัฟกานิสถาน
อารูบา
อาร์เจนตินา
อาร์เมเนีย
อาเซอร์ไบจาน
อิตาลี
อินเดีย
อินโดนีเซีย
อิรัก
อิสราเอล
อิหร่าน
อิเควทอเรียลกินี
อียิปต์
อุซเบกิสถาน
อุรุกวัย
อเมริกันซามัว
ฮอนดูรัส
ฮังการี
เกรเนดา
เกาะคริสต์มาส
เกาะนอร์ฟอล์ก
เกาะบูเวต
เกาะเซนต์มาร์ติน (ส่วนที่เป็นดินแดนของฝรั่งเศส)
เกาะเซนต์มาร์ติน (ส่วนที่เป็นดินแดนของเนเธอร์แลนด์)
เกาะเฮิร์ดและหมู่เกาะแมคโดนัลด์
เกิร์นซีย์
เขตบริหารพิเศษมาเก๊า
เขตบริหารพิเศษฮ่องกง
เคนยา
เคปเวิร์ด
เจอร์ซีย์
เซนต์คิตส์และเนวิส
เซนต์บาร์เตเลมี
เซนต์ลูเซีย
เซนต์วินเซนต์และเกรนาดีนส์
เซนต์เฮเลนา อัสเซนชัน และตริสตันดากูนยา
เซอร์เบีย
เซาตูเมและปรินซิปี
เซาท์จอร์เจีย และหมู่เกาะเซาท์แซนด์วิช
เซียร์ราลีโอน
เซเชลส์
เซเนกัล
เดนมาร์ก
เติร์กเมนิสถาน
เนปาล
เนเธอร์แลนด์
เบนิน
เบลารุส
เบลีซ
เบลเยียม
เบอร์มิวดา
เปรู
เปอร์โตริโก
เฟรนช์เกียนา
เฟรนช์เซาเทิร์นเทร์ริทอรีส์
เฟรนช์โปลินีเซีย
เมียนมาร์
เม็กซิโก
เยอรมนี
เยเมน
เรอูนียง
เลบานอน
เลโซโท
เวียดนาม
เวเนซุเอลา
เอกวาดอร์
เอธิโอเปีย
เอริเทรีย
เอลซัลวาดอร์
เอสโตเนีย
เฮติ
แกมเบีย
แคนาดา
แคเมอรูน
แซงปีแยร์และมีเกอลง
แซมเบีย
แทนซาเนีย
แองกวิลลา
แองโกลา
แอนตาร์กติกา
แอนติกาและบาร์บูดา
แอฟริกาใต้
แอลจีเรีย
แอลเบเนีย
โกตดิวัวร์
โครเอเชีย
โคลอมเบีย
โซมาเลีย
โดมินิกา
โตเกเลา
โตโก
โบลิเวีย
โปรตุเกส
โปแลนด์
โมซัมบิก
โมนาโก
โมร็อกโก
โรมาเนีย
โอมาน
ไซปรัส
ไต้หวัน
ไนจีเรีย
ไนเจอร์
ไลบีเรีย
ไอซ์แลนด์
ไอร์แลนด์
ไอล์ออฟแมน
Telephone *
E-mail aziendale *
Conferma l’indirizzo e-mail di lavoro  *
Numero di dipendenti *
1-10 พนักงาน
11-50 พนักงาน
51-200 พนักงาน
201-500 พนักงาน
501-1,000 พนักงาน
1,001-5,000 พนักงาน
5,001-10,000 พนักงาน
>10,000 พนักงาน
1000 caratteri rimanenti
* Campi obbligatori
.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('#th-corporateGiftsContactFormConfigWrapper').find('.js-th-corporateGiftsContactFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { '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('Inserisci solo lettere (non punti)'); messagesEN.push('Inserisci solo lettere (non punti)'); 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('La lunghezza minima è pari a 2 caratteri'); messagesEN.push('La lunghezza minima è pari a 2 caratteri'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Please enter your first name.', message_en: 'Please enter your first name.' }, stringLength: { message: 'Hai superato la lunghezza massima di 40 caratteri per questo 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('Inserisci solo lettere (non punti)'); messagesEN.push('Inserisci solo lettere (non punti)'); 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('La lunghezza minima è pari a 2 caratteri'); messagesEN.push('La lunghezza minima è pari a 2 caratteri'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Inserisci il tuo cognome', message_en: 'Inserisci il tuo cognome' }, stringLength: { message: 'Hai superato la lunghezza massima di 40 caratteri per questo 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: 'Hai superato la lunghezza massima di 40 caratteri per questo 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: 'Inserisci il nome della tua azienda.', message_en: 'Inserisci il nome della tua azienda.' }, stringLength: { message: 'Hai superato la lunghezza massima di 40 caratteri per questo 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: 'Inserisci il tuo indirizzo e-mail aziendale', message_en: 'Inserisci il tuo indirizzo e-mail aziendale' }, notEmpty: { message: 'Inserisci il tuo indirizzo e-mail aziendale', message_en: 'Inserisci il tuo indirizzo e-mail aziendale' }, stringLength: { message: 'Il numero di caratteri per questo campo deve essere compreso tra 0 e 70', 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: 'Inserisci il tuo indirizzo e-mail aziendale', message_en: 'Inserisci il tuo indirizzo e-mail aziendale' }, notEmpty: { message: 'Inserisci il tuo indirizzo e-mail aziendale', message_en: 'Inserisci il tuo indirizzo e-mail aziendale' }, stringLength: { message: 'Il numero di caratteri per questo campo deve essere compreso tra 0 e 70', 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: 'I campi non corrispondono.', message_en: 'The fields do not match.' } } }, 'values[corporateGiftsContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Inserisci il tuo paese\/regione.', message_en: 'Inserisci il tuo paese\/regione.' } } }, '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('inserisci un numero di telefono. (solamente numeri, senza spazi)'); messagesEN.push('inserisci un numero di telefono. (solamente numeri, senza spazi)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Please enter your telephone number', message_en: 'Please enter your telephone number' }, stringLength: { message: 'Hai superato la lunghezza massima di 20 caratteri per questo campo', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Please enter your telephone number', message_en: 'Please enter your telephone number', 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: 'Indica il motivo del contatto', message_en: 'Indica il motivo del contatto' }, stringLength: { message: 'Il numero di caratteri per questo campo deve essere compreso tra 0 e 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 = '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(); } };