Free standard shipping over 75 EUR
Search
* Mandatory Fields
First name *
Last name *
Job Title
Company Name *
Please select a country... *
กรีซ
กรีนแลนด์
กวม
กัมพูชา
กัวเดอลุป
กัวเตมาลา
กาตาร์
กานา
กาบอง
กายอานา
กินี
กินี-บิสเซา
คองโก
คอสตาริกา
คอโมโรส
คาซัคสถาน
คิริบาส
คิวบา
คีร์กีซสถาน
คูราเซา
คูเวต
จอร์เจีย
จอร์แดน
จาไมกา
จิบูตี
จีนแผ่นดินใหญ่
ชาด
ชิลี
ซานมารีโน
ซามัว
ซาอุดีอาระเบีย
ซาฮาราตะวันตก
ซิมบับเว
ซูดาน
ซูรินาเม
ญี่ปุ่น
ดินแดนปาเลสไตน์
ตรินิแดดและโตเบโก
ตองกา
ติมอร์-เลสเต
ตุรกี
ตูนิเซีย
ตูวาลู
ทาจิกิสถาน
นครรัฐวาติกัน
นอร์เวย์
นามิเบีย
นาอูรู
นิการากัว
นิวซีแลนด์
นิวแคลิโดเนีย
นีอูเอ
บราซิล
บริติชอินเดียนโอเชียนเทร์ริทอรี
บรูไนดารุสซาลาม
บอตสวานา
บอสเนียและเฮอร์เซโกวีนา
บังกลาเทศ
บัลแกเรีย
บาร์เบโดส
บาห์เรน
บาฮามาส
บุรุนดี
บูร์กินาฟาโซ
ประเทศไทย
ปากีสถาน
ปานามา
ปาปัวนิวกินี
ปารากวัย
ปาเลา
ฝรั่งเศส
ฟิจิ
ฟินแลนด์
ฟิลิปปินส์
ภูฏาน
มองโกเลีย
มอนต์เซอร์รัต
มอนเตเนโกร
มอริเชียส
มอริเตเนีย
มอลตา
มอลโดวา
มัลดีฟส์
มาซิโดเนีย
มาดากัสการ์
มายอต
มาร์ตินีค
มาลาวี
มาลี
มาเลเซีย
ยิบรอลตาร์
ยูกันดา
ยูเครน
รวันดา
ลักเซมเบิร์ก
ลัตเวีย
ลิกเตนสไตน์
ลิทัวเนีย
วานูอาตู
วาลลิสและฟุตูนา
ศรีลังกา
สฟาลบาร์และยานไมเอน
สวาซิแลนด์
สวิตเซอร์แลนด์
สวีเดน
สหพันธรัฐไมโครนีเชีย
สหรัฐอาหรับเอมิเรตส์
สหรัฐอเมริกา
สหราชอาณาจักร
สาธารณรัฐประชาธิปไตยคองโก
สาธารณรัฐประชาธิปไตยประชาชนลาว
สาธารณรัฐประชาธิปไตยประชาชนเกาหลี
สาธารณรัฐสังคมนิยมประชาชนอาหรับลิเบีย
สาธารณรัฐอาหรับซีเรีย
สาธารณรัฐเกาหลี
สาธารณรัฐเช็ก
สาธารณรัฐแอฟริกากลาง
สาธารณรัฐโดมินิกัน
สิงคโปร์
สเปน
สโลวาเกีย
สโลวีเนีย
หมู่เกาะคุก
หมู่เกาะนอร์เทิร์นมาเรียนา
หมู่เกาะพิตแคร์น
หมู่เกาะฟอล์กแลนด์
หมู่เกาะมาร์แชลล์
หมู่เกาะรอบนอกของสหรัฐอเมริกา
หมู่เกาะเคย์แมน
หมู่เกาะเติกส์และหมู่เกาะเคคอส
หมู่เกาะเวอร์จินของสหรัฐอเมริกา
หมู่เกาะเวอร์จินของอังกฤษ
หมู่เกาะแฟโร
หมู่เกาะโคโคส (หมู่เกาะคีลิง)
หมู่เกาะโซโลมอน
หมู่เกาะโบแนเรอ ซินต์เอิสตาซียึส และซาบา
หมู่เกาะโอลันด์
ออสเตรีย
ออสเตรเลีย
อันดอร์รา
อัฟกานิสถาน
อารูบา
อาร์เจนตินา
อาร์เมเนีย
อาเซอร์ไบจาน
อิตาลี
อินเดีย
อินโดนีเซีย
อิรัก
อิสราเอล
อิหร่าน
อิเควทอเรียลกินี
อียิปต์
อุซเบกิสถาน
อุรุกวัย
อเมริกันซามัว
ฮอนดูรัส
ฮังการี
เกรเนดา
เกาะคริสต์มาส
เกาะนอร์ฟอล์ก
เกาะบูเวต
เกาะเซนต์มาร์ติน (ส่วนที่เป็นดินแดนของฝรั่งเศส)
เกาะเซนต์มาร์ติน (ส่วนที่เป็นดินแดนของเนเธอร์แลนด์)
เกาะเฮิร์ดและหมู่เกาะแมคโดนัลด์
เกิร์นซีย์
เขตบริหารพิเศษมาเก๊า
เขตบริหารพิเศษฮ่องกง
เคนยา
เคปเวิร์ด
เจอร์ซีย์
เซนต์คิตส์และเนวิส
เซนต์บาร์เตเลมี
เซนต์ลูเซีย
เซนต์วินเซนต์และเกรนาดีนส์
เซนต์เฮเลนา อัสเซนชัน และตริสตันดากูนยา
เซอร์เบีย
เซาตูเมและปรินซิปี
เซาท์จอร์เจีย และหมู่เกาะเซาท์แซนด์วิช
เซียร์ราลีโอน
เซเชลส์
เซเนกัล
เดนมาร์ก
เติร์กเมนิสถาน
เนปาล
เนเธอร์แลนด์
เบนิน
เบลารุส
เบลีซ
เบลเยียม
เบอร์มิวดา
เปรู
เปอร์โตริโก
เฟรนช์เกียนา
เฟรนช์เซาเทิร์นเทร์ริทอรีส์
เฟรนช์โปลินีเซีย
เมียนมาร์
เม็กซิโก
เยอรมนี
เยเมน
เรอูนียง
เลบานอน
เลโซโท
เวียดนาม
เวเนซุเอลา
เอกวาดอร์
เอธิโอเปีย
เอริเทรีย
เอลซัลวาดอร์
เอสโตเนีย
เฮติ
แกมเบีย
แคนาดา
แคเมอรูน
แซงปีแยร์และมีเกอลง
แซมเบีย
แทนซาเนีย
แองกวิลลา
แองโกลา
แอนตาร์กติกา
แอนติกาและบาร์บูดา
แอฟริกาใต้
แอลจีเรีย
แอลเบเนีย
โกตดิวัวร์
โครเอเชีย
โคลอมเบีย
โซมาเลีย
โดมินิกา
โตเกเลา
โตโก
โบลิเวีย
โปรตุเกส
โปแลนด์
โมซัมบิก
โมนาโก
โมร็อกโก
โรมาเนีย
โอมาน
ไซปรัส
ไต้หวัน
ไนจีเรีย
ไนเจอร์
ไลบีเรีย
ไอซ์แลนด์
ไอร์แลนด์
ไอล์ออฟแมน
Telephone *
Business Email *
Confirm Business Email *
Number of employees *
1-10 พนักงาน
11-50 พนักงาน
51-200 พนักงาน
201-500 พนักงาน
501-1,000 พนักงาน
1,001-5,000 พนักงาน
5,001-10,000 พนักงาน
>10,000 พนักงาน
1000 characters remaining
.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); 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/ */ data.fv.disableSubmitButtons(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('#th-professionalCustomersContactFormConfigWrapper').find('.js-th-professionalCustomersContactFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { '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('Only letters are allowed'); messagesEN.push('Only letters are allowed'); 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('Minimum length is 2 characters'); messagesEN.push('Minimum length is 2 characters'); 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: 'You have exceeded the maximum length of 40 characters for this field', 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('Only letters are allowed'); messagesEN.push('Only letters are allowed'); 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('Minimum length is 2 characters'); messagesEN.push('Minimum length is 2 characters'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Please enter a last name', message_en: 'Please enter a last name' }, stringLength: { message: 'You have exceeded the maximum length of 40 characters for this field', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_jobTitle]': { trigger: 'blur', validators: { stringLength: { message: 'You have exceeded the maximum length of 40 characters for this field', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_companyName]': { trigger: 'blur', validators: { notEmpty: { message: 'Please enter your company name.', message_en: 'Please enter your company name.' }, stringLength: { message: 'You have exceeded the maximum length of 40 characters for this field', 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: 'Please enter your business email address', message_en: 'Please enter your business email address' }, notEmpty: { message: 'Please enter your business email address', message_en: 'Please enter your business email address' }, stringLength: { message: 'The number of characters for this field must be between 0 and 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: 'Please enter your business email address', message_en: 'Please enter your business email address' }, notEmpty: { message: 'Please enter your business email address', message_en: 'Please enter your business email address' }, stringLength: { message: 'The number of characters for this field must be between 0 and 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: 'The fields do not match.', message_en: 'The fields do not match.' } } }, 'values[professionalCustomersContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Please enter your country\/region.', message_en: 'Please enter your country\/region.' } } }, '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('please enter your phone number. (Numbers only, no spaces)'); messagesEN.push('please enter your phone number. (Numbers only, no spaces)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Please enter a phone number', message_en: 'Please enter a phone number' }, stringLength: { message: 'You have exceeded the maximum length of 20 characters for this field', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Please enter a phone number', message_en: 'Please enter a phone 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[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: 'Please fill in your contact reason', message_en: 'Please fill in your contact reason' }, stringLength: { message: 'The number of characters for this field must be between 0 and 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); 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/ */ data.fv.disableSubmitButtons(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

SALE

EARLY ACCESS

SALE
EARLY ACCESS

Up to 40% off select styles*
Buy 2 and get extra 15% off
Buy 3 or more, get extra 20% off*
Code: ICONIC25

*Terms & Conditions apply