Livraison standard gratuite pour
une commande supérieure à 75 EUR
*Champs obligatoires
Salutation *
Mevr.
De heer
Prénom *
Nom *
Intitulé du poste
Nom de la société : *
Veuillez choisir un pays *
Afghanistan
Albanië
Algerije
Amerikaans-Samoa
Amerikaanse Maagdeneilanden
Andorra
Angola
Anguilla
Antarctica
Antigua en Barbuda
Argentinië
Armenië
Aruba
Australië
Azerbeidzjan
Bahama's
Bahrein
Bangladesh
Barbados
België
Belize
Benin
Bermuda
Bhutan
Bolivia
Bonaire, Sint Eustatius en Saba
Bosnië en Herzegovina
Botswana
Bouveteiland
Brazilië
Brits Indische Oceaanterritorium
Britse Maagdeneilanden
Brunei Darussalam
Bulgarije
Burkina Faso
Burundi
Cambodja
Canada
Centraal-Afrikaanse Republiek
Chili
Christmaseiland
Cocoseilanden
Colombia
Comoren
Congo, de Democratische Republiek
Cookeilanden
Costa Rica
Cuba
Curaçao
Cyprus
Denemarken
Djibouti
Dominica
Dominicaanse Republiek
Duitsland
Ecuador
Egypte
El Salvador
Equatoriaal-Guinea
Eritrea
Estland
Ethiopië
Faeröer
Falklandeilanden
Fiji
Filipijnen
Finland
Frankrijk
Frans-Guyana
Frans-Polynesië
Franse Zuidelijke Gebieden
Gabon
Gambia
Georgië
Ghana
Gibraltar
Grenada
Griekenland
Groenland
Guadeloupe
Guam
Guatemala
Guernsey
Guinee
Guinee-Bissau
Guyana
Haïti
Heard en McDonaldeilanden
Heilige Stoel (Staat Vaticaanstad)
Honduras
Hongarije
Hongkong
IJsland
Ierland
India
Indonesië
Irak
Iran
Isle of Man
Israël
Italië
Ivoorkust
Jamaica
Japan
Jemen
Jersey
Jordanië
Kaaimaneilanden
Kaapverdië
Kameroen
Kazachstan
Kenia
Kirgizië
Kiribati
Kleine afgelegen eilanden van de Verenigde Staten
Koeweit
Kongo
Korea, Democratische Volksrepubliek
Kroatië
Laos, Democratische Volksrepubliek
Lesotho
Letland
Libanon
Liberia
Libië
Liechtenstein
Litouwen
Luxemburg
Macau
Macedonië
Madagaskar
Malawi
Malediven
Maleisië
Mali
Malta
Marokko
Marshalleilanden
Martinique
Mauritanië
Mauritius
Mayotte
Mexico
Micronesia, Federale Staten van
Moldavië
Monaco
Mongolië
Montenegro
Montserrat
Mozambique
Myanmar
Namibië
Nauru
Nederland
Nepal
Nicaragua
Nieuw-Caledonië
Nieuw-Zeeland
Niger
Nigeria
Niue
Noordelijke Marianen
Noorwegen
Norfolkeiland
Oeganda
Oekraïne
Oezbekistan
Oman
Oost-Timor
Oostenrijk
Pakistan
Palau
Palestijnse territoria
Panama
Papoea-Nieuw-Guinea
Paraguay
Peru
Pitcairneilanden
Polen
Porto Rico
Portugal
Qatar
Roemenië
Rwanda
Réunion
Saint Kitts en Nevis
Saint Lucia
Saint Vincent en de Grenadines
Saint-Barthélemy
Saint-Martin (Frans deel)
Saint-Pierre en Miquelon
Salomonseilanden
Samoa
San Marino
Sao Tomé en Principe
Saoedi-Arabië
Senegal
Servië
Seychellen
Sierra Leone
Singapore
Sint Maarten (Nederlands deel)
Sint-Helena, Ascension en Tristan da Cunha
Slovenië
Slowakije
Soedan
Somalië
Spanje
Sri Lanka
Suriname
Svalbard en Jan Mayen
Swaziland
Syrië, Arabische Republiek
Tadzjikistan
Taiwan
Tanzania
Thailand
Togo
Tokelau
Tonga
Trinidad en Tobago
Tsjaad
Tsjechië
Tunesië
Turkije
Turkmenistan
Turks- en Caicoseilanden
Tuvalu
Uruguay
Vanuatu
Vasteland van China
Venezuela
Verenigd Koninkrijk
Verenigde Arabische Emiraten
Verenigde Staten
Vietnam
Wallis en Futuna
Westelijke Sahara
Wit-Rusland
Zambia
Zimbabwe
Zuid-Afrika
Zuid-Georgia en de Zuidelijke Sandwicheilanden
Zuid-Korea
Zweden
Zwitserland
Ålandseilanden
Téléphone *
Adresse e-mail professionnelle *
Confirmez l’adresse e-mail professionnelle  *
Nombre d’employés *
1-10 medewerkers
11-50 medewerkers
51-200 medewerkers
201-500 medewerkers
501-1,000 medewerkers
1,001-5,000 medewerkers
5,001-10,000 medewerkers
>10,000 medewerkers
1000 caractères restant
.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('#professionalCustomersContactFormConfigWrapper').find('.js-professionalCustomersContactFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[professionalCustomersContactFormDefinition_title]': { trigger: 'change', validators: { notEmpty: { message: 'Veuillez choisir un titre.', message_en: 'Veuillez choisir un titre.' } } }, '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('Écrivez des lettres uniquement (sans points)'); messagesEN.push('Écrivez des lettres uniquement (sans points)'); 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 longueur minimum est de 2 caractères'); messagesEN.push('La longueur minimum est de 2 caractères'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Veuillez entrer votre nom.', message_en: 'Veuillez entrer votre nom.' }, stringLength: { message: 'Vous avez dépassé la longueur maximum des 40 caractères autorisés pour ce champ', 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('Écrivez des lettres uniquement (sans points)'); messagesEN.push('Écrivez des lettres uniquement (sans points)'); 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 longueur minimum est de 2 caractères'); messagesEN.push('La longueur minimum est de 2 caractères'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Merci d\'entrer votre nom', message_en: 'Merci d\'entrer votre nom' }, stringLength: { message: 'Vous avez dépassé la longueur maximum des 40 caractères autorisés pour ce champ', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_jobTitle]': { trigger: 'blur', validators: { stringLength: { message: 'Vous avez dépassé la longueur maximum des 40 caractères autorisés pour ce champ', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[professionalCustomersContactFormDefinition_companyName]': { trigger: 'blur', validators: { notEmpty: { message: 'Veuillez indiquer le nom de votre société.', message_en: 'Veuillez indiquer le nom de votre société.' }, stringLength: { message: 'Vous avez dépassé la longueur maximum des 40 caractères autorisés pour ce champ', 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: 'Veuillez indiquer votre adresse e-mail professionnelle', message_en: 'Veuillez indiquer votre adresse e-mail professionnelle' }, notEmpty: { message: 'Veuillez indiquer votre adresse e-mail professionnelle', message_en: 'Veuillez indiquer votre adresse e-mail professionnelle' }, stringLength: { message: 'Le nombre de caractères de ce champ doit être compris entre 0 et 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: 'Veuillez indiquer votre adresse e-mail professionnelle', message_en: 'Veuillez indiquer votre adresse e-mail professionnelle' }, notEmpty: { message: 'Veuillez indiquer votre adresse e-mail professionnelle', message_en: 'Veuillez indiquer votre adresse e-mail professionnelle' }, stringLength: { message: 'Le nombre de caractères de ce champ doit être compris entre 0 et 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: 'Les champs ne correspondent pas.', message_en: 'The fields do not match.' } } }, 'values[professionalCustomersContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Veuillez entrer votre pays\/région.', message_en: 'Veuillez entrer votre pays\/région.' } } }, '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('Veuillez indiquer votre numéro de téléphone. (chiffres seulement, sans espaces)'); messagesEN.push('Veuillez indiquer votre numéro de téléphone. (chiffres seulement, sans espaces)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Veuillez indiquer votre numéro de téléphone', message_en: 'Veuillez indiquer votre numéro de téléphone' }, stringLength: { message: 'Vous avez dépassé la longueur maximum des 20 caractères autorisés pour ce champ', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Veuillez indiquer votre numéro de téléphone', message_en: 'Veuillez indiquer votre numéro de téléphone', 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: 'Veuillez indiquer la raison pour laquelle vous nous contactez.', message_en: 'Veuillez indiquer la raison pour laquelle vous nous contactez.' }, stringLength: { message: 'Le nombre de caractères de ce champ doit être compris entre 0 et 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