コーポレート・ギフト

情報リクエストi

お問い合わせに商品が追加されました。フォームに数量をご記入ください。担当者よりご連絡させていただきます。

お問い合わせに商品が追加されていません。正確なお見積りのために、リンクをクリックして商品をお問い合わせに追加してください。商品なしでも構いません。

Please enter your details and one of our Corporate Gifts account managers will be in touch.
名 *
姓 *
役職
社名 *
国/地域を選択してください。 *
กรีซ
กรีนแลนด์
กวม
กัมพูชา
กัวเดอลุป
กัวเตมาลา
กาตาร์
กานา
กาบอง
กายอานา
กินี
กินี-บิสเซา
คองโก
คอสตาริกา
คอโมโรส
คาซัคสถาน
คิริบาส
คิวบา
คีร์กีซสถาน
คูราเซา
คูเวต
จอร์เจีย
จอร์แดน
จาไมกา
จิบูตี
จีนแผ่นดินใหญ่
ชาด
ชิลี
ซานมารีโน
ซามัว
ซาอุดีอาระเบีย
ซาฮาราตะวันตก
ซิมบับเว
ซูดาน
ซูรินาเม
ญี่ปุ่น
ดินแดนปาเลสไตน์
ตรินิแดดและโตเบโก
ตองกา
ติมอร์-เลสเต
ตุรกี
ตูนิเซีย
ตูวาลู
ทาจิกิสถาน
นครรัฐวาติกัน
นอร์เวย์
นามิเบีย
นาอูรู
นิการากัว
นิวซีแลนด์
นิวแคลิโดเนีย
นีอูเอ
บราซิล
บริติชอินเดียนโอเชียนเทร์ริทอรี
บรูไนดารุสซาลาม
บอตสวานา
บอสเนียและเฮอร์เซโกวีนา
บังกลาเทศ
บัลแกเรีย
บาร์เบโดส
บาห์เรน
บาฮามาส
บุรุนดี
บูร์กินาฟาโซ
ประเทศไทย
ปากีสถาน
ปานามา
ปาปัวนิวกินี
ปารากวัย
ปาเลา
ฝรั่งเศส
ฟิจิ
ฟินแลนด์
ฟิลิปปินส์
ภูฏาน
มองโกเลีย
มอนต์เซอร์รัต
มอนเตเนโกร
มอริเชียส
มอริเตเนีย
มอลตา
มอลโดวา
มัลดีฟส์
มาซิโดเนีย
มาดากัสการ์
มายอต
มาร์ตินีค
มาลาวี
มาลี
มาเลเซีย
ยิบรอลตาร์
ยูกันดา
ยูเครน
รวันดา
ลักเซมเบิร์ก
ลัตเวีย
ลิกเตนสไตน์
ลิทัวเนีย
วานูอาตู
วาลลิสและฟุตูนา
ศรีลังกา
สฟาลบาร์และยานไมเอน
สวาซิแลนด์
สวิตเซอร์แลนด์
สวีเดน
สหพันธรัฐไมโครนีเชีย
สหรัฐอาหรับเอมิเรตส์
สหรัฐอเมริกา
สหราชอาณาจักร
สาธารณรัฐประชาธิปไตยคองโก
สาธารณรัฐประชาธิปไตยประชาชนลาว
สาธารณรัฐประชาธิปไตยประชาชนเกาหลี
สาธารณรัฐสังคมนิยมประชาชนอาหรับลิเบีย
สาธารณรัฐอาหรับซีเรีย
สาธารณรัฐเกาหลี
สาธารณรัฐเช็ก
สาธารณรัฐแอฟริกากลาง
สาธารณรัฐโดมินิกัน
สิงคโปร์
สเปน
สโลวาเกีย
สโลวีเนีย
หมู่เกาะคุก
หมู่เกาะนอร์เทิร์นมาเรียนา
หมู่เกาะพิตแคร์น
หมู่เกาะฟอล์กแลนด์
หมู่เกาะมาร์แชลล์
หมู่เกาะรอบนอกของสหรัฐอเมริกา
หมู่เกาะเคย์แมน
หมู่เกาะเติกส์และหมู่เกาะเคคอส
หมู่เกาะเวอร์จินของสหรัฐอเมริกา
หมู่เกาะเวอร์จินของอังกฤษ
หมู่เกาะแฟโร
หมู่เกาะโคโคส (หมู่เกาะคีลิง)
หมู่เกาะโซโลมอน
หมู่เกาะโบแนเรอ ซินต์เอิสตาซียึส และซาบา
หมู่เกาะโอลันด์
ออสเตรีย
ออสเตรเลีย
อันดอร์รา
อัฟกานิสถาน
อารูบา
อาร์เจนตินา
อาร์เมเนีย
อาเซอร์ไบจาน
อิตาลี
อินเดีย
อินโดนีเซีย
อิรัก
อิสราเอล
อิหร่าน
อิเควทอเรียลกินี
อียิปต์
อุซเบกิสถาน
อุรุกวัย
อเมริกันซามัว
ฮอนดูรัส
ฮังการี
เกรเนดา
เกาะคริสต์มาส
เกาะนอร์ฟอล์ก
เกาะบูเวต
เกาะเซนต์มาร์ติน (ส่วนที่เป็นดินแดนของฝรั่งเศส)
เกาะเซนต์มาร์ติน (ส่วนที่เป็นดินแดนของเนเธอร์แลนด์)
เกาะเฮิร์ดและหมู่เกาะแมคโดนัลด์
เกิร์นซีย์
เขตบริหารพิเศษมาเก๊า
เขตบริหารพิเศษฮ่องกง
เคนยา
เคปเวิร์ด
เจอร์ซีย์
เซนต์คิตส์และเนวิส
เซนต์บาร์เตเลมี
เซนต์ลูเซีย
เซนต์วินเซนต์และเกรนาดีนส์
เซนต์เฮเลนา อัสเซนชัน และตริสตันดากูนยา
เซอร์เบีย
เซาตูเมและปรินซิปี
เซาท์จอร์เจีย และหมู่เกาะเซาท์แซนด์วิช
เซียร์ราลีโอน
เซเชลส์
เซเนกัล
เดนมาร์ก
เติร์กเมนิสถาน
เนปาล
เนเธอร์แลนด์
เบนิน
เบลารุส
เบลีซ
เบลเยียม
เบอร์มิวดา
เปรู
เปอร์โตริโก
เฟรนช์เกียนา
เฟรนช์เซาเทิร์นเทร์ริทอรีส์
เฟรนช์โปลินีเซีย
เมียนมาร์
เม็กซิโก
เยอรมนี
เยเมน
เรอูนียง
เลบานอน
เลโซโท
เวียดนาม
เวเนซุเอลา
เอกวาดอร์
เอธิโอเปีย
เอริเทรีย
เอลซัลวาดอร์
เอสโตเนีย
เฮติ
แกมเบีย
แคนาดา
แคเมอรูน
แซงปีแยร์และมีเกอลง
แซมเบีย
แทนซาเนีย
แองกวิลลา
แองโกลา
แอนตาร์กติกา
แอนติกาและบาร์บูดา
แอฟริกาใต้
แอลจีเรีย
แอลเบเนีย
โกตดิวัวร์
โครเอเชีย
โคลอมเบีย
โซมาเลีย
โดมินิกา
โตเกเลา
โตโก
โบลิเวีย
โปรตุเกส
โปแลนด์
โมซัมบิก
โมนาโก
โมร็อกโก
โรมาเนีย
โอมาน
ไซปรัส
ไต้หวัน
ไนจีเรีย
ไนเจอร์
ไลบีเรีย
ไอซ์แลนด์
ไอร์แลนด์
ไอล์ออฟแมน
電話番号 *
勤務先Eメールアドレス *
ビジネスEメールの確認  *
従業員数 *
1-10 พนักงาน
11-50 พนักงาน
51-200 พนักงาน
201-500 พนักงาน
501-1,000 พนักงาน
1,001-5,000 พนักงาน
5,001-10,000 พนักงาน
>10,000 พนักงาน
入力できる文字数 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(); } };
$(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('文字のみを入力してください'); 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[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('文字のみを入力してください'); 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[corporateGiftsContactFormDefinition_jobTitle]': { trigger: 'blur', validators: { stringLength: { message: 'この項目の最大入力文字数である40字を超えました', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_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[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: '勤務先Eメールアドレスを入力してください。', message_en: '勤務先Eメールアドレスを入力してください。' }, notEmpty: { message: '勤務先Eメールアドレスを入力してください。', message_en: '勤務先Eメールアドレスを入力してください。' }, stringLength: { message: 'この項目の入力可能文字数は0〜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: '勤務先Eメールアドレスを入力してください。', message_en: '勤務先Eメールアドレスを入力してください。' }, notEmpty: { message: '勤務先Eメールアドレスを入力してください。', message_en: '勤務先Eメールアドレスを入力してください。' }, 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[corporateGiftsContactFormDefinition_email]', message: 'フィールドがマッチしません。', message_en: 'The fields do not match.' } } }, 'values[corporateGiftsContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: '国を選択してください。', message_en: '国を選択してください。' } } }, '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('電話番号を欄に記入してください。(数字のみ、スペース不可)'); 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[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: 'お問い合わせの理由をご入力ください。', 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 = '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(); } };