Je possède un compte en ligne
Connectez-vous pour consulter vos derniers achats ou votre liste de souhaits et gérez vos données personnelles et vos préférences ici.
Mot de passe oublié ?
Champs obligatoires *
Rejoignez le Swarovski Club
Soyez les premiers informés grâce au Swarovski Club !
Créez un compte pour :
- Bénéficiez d'un accès exclusif avant les soldes
- Restez au courant des tendances et des nouvelles collections
- Recevez des invitations à des événements VIP
Inscription effectuée en boutique ?
Activez votre compte en ligne en saisissant vos identifiants de connexion et votre numéro de membre. Saisissez ensuite un mot de passe de votre choix.
Complétez votre inscription maintenant
Veuillez sélectionner votre type d'adhésion ci-dessous :
$(this).closest('#ch-registerWithScsOfflineMemberFormConfigWrapper').find('.js-ch-registerWithScsOfflineMemberFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[registerWithScsOfflineMemberFormDefinition_membershipNumber]': {
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('^(\\d{3}(-*)\\d+)?$', ''))) {
messages.push('Veuillez saisir un numéro d\'adhérent valide au format 123-45455');
messagesEN.push('Veuillez saisir un numéro d\'adhérent valide au format 123-45455');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Le champ du numéro d\'adhérent ne peut pas être vide',
message_en: 'Le champ du numéro d\'adhérent ne peut pas être vide'
},
stringLength: {
message: 'Le nombre de caractères de ce champ doit être compris entre 0 et 11',
message_en: 'The number of characters for this field must be between 0 and 11',
min: 0
,
max: 11
},
}
},
'values[registerWithScsOfflineMemberFormDefinition_email]': {
trigger: 'blur',
validators: {
callbackExternalEmail: {
alias: 'callback',
callback: function(value, validator, $field) {
if (value.length > 0 && !value.endsWith('@swarovski.com')) {
var errorOccured = true;
var options = {
url: 'https://api.addressy.com/EmailValidation/Interactive/Validate/v2/json3.ws?Timeout=6000&Key=AG56-NB85-BC21-KB22&Email=' + value,
method: 'POST',
async: false,
};
$.ajax(options)
.done(function(responseData) {
if (responseData !== undefined && responseData.Items !== undefined) {
var validationResult = responseData.Items[0];
if (validationResult !== undefined && validationResult.ResponseCode !== 'Invalid') {
errorOccured = false;
}
}
})
.fail(function(err) {
errorOccured = false;
});
if (errorOccured) {
return {
valid: false,
message: 'Veuillez entrer votre adresse mail.',
message_en: 'Veuillez entrer votre adresse mail.'
};
} else {
return true;
}
} else {
return true;
}
}
},
regexp: {
regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:[a-zA-Z0-9!#$%&\'*+\/=?^_‘{|}~-]+(?:\\.[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](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+(?=[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 entrer votre adresse mail.',
message_en: 'Veuillez entrer votre adresse mail.'
},
notEmpty: {
message: 'Veuillez entrer votre adresse mail.',
message_en: 'Veuillez entrer votre adresse mail.'
},
stringLength: {
message: 'Le nombre de caractères de ce champ doit être compris entre 1 et 70',
message_en: 'The number of characters for this field must be between 1 and 70',
min: 1
,
max: 70
},
}
},
'values[registerWithScsOfflineMemberFormDefinition_password]': {
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.match(new RegExp('(^$|^(?=.*[0-9])(?=.*[A-Z]).{7,}$)', ''))) {
messages.push('Le mot de passe doit contenir au moins 7 caractères, dont un chiffre et une majuscule.');
messagesEN.push('Le mot de passe doit contenir au moins 7 caractères, dont un chiffre et une majuscule.');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Veuillez définir un mot de passe.',
message_en: 'Veuillez définir un mot de passe.'
},
}
},
'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]': {
err: "#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince-date-error-messages",
excluded: false,
trigger: 'blur',
validators: {
callback: {
message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidDay, error.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidDay\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidDay, error.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidDay\u003C\/span\u003E',
callback: function(value, validator, $field) {
var input = $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day');
if($('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').val() && value && $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').val()){
var currentDate = new Date().getTime();
var fieldsDDMMYYYY = value ? new Date($('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').val() + "." + value + "." + $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').val()).getTime() : new Date().getTime() + 1;
if(typeof fieldsDDMMYYYY == "number" && ((fieldsDDMMYYYY > currentDate)||(fieldsDDMMYYYY < currentDate))) {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]');
}
}
if (ACC.global.isDateFieldEmpty("registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince")) {
if ($("small[data-fv-for='" + 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month');
}
if ($("small[data-fv-for='" + 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]');
}
input.addClass('date-input-no-confirmation');
return true;
} else {
input.removeClass('date-input-no-confirmation');
}
if ($field.val().match("^\\d+$") == null) {
return false;
}
var value = parseInt($field.val());
var monthValue = $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').val();
var yearValue = $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').val();
if (monthValue == "" && yearValue == "") {
return value >= 1 && value <= 31;
}
if (monthValue == "2" && yearValue == "") {
return value >= 1 && value <= 29;
}
var month = parseInt(monthValue);
var year = parseInt(yearValue);
return value >= 1 && value <= ACC.global.numberOfDaysInMonth(month, year);
}
}
}
},
'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month]': {
err: "#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince-date-error-messages",
excluded: false,
trigger: 'blur',
validators: {
callback: {
message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidMonth, error.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidMonth\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidMonth, error.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidMonth\u003C\/span\u003E',
callback: function(value, validator, $field) {
if(value && $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day').val() && $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').val()){
var currentDate = new Date().getTime();
var fieldsDDMMYYYY = new Date(value + "." + $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day').val() + "." + $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').val()).getTime();
if(typeof fieldsDDMMYYYY == "number" && ((fieldsDDMMYYYY > currentDate)||(fieldsDDMMYYYY < currentDate))) {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]');
}
}
if (ACC.global.isDateFieldEmpty("registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince")) {
if ($("small[data-fv-for='" + 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]');
}
if ($("small[data-fv-for='" + 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]');
}
$('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').addClass('date-input-no-confirmation');
return true;
} else {
$('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').removeClass('date-input-no-confirmation');
}
if ($field.val().match("^\\d+$") == null){
return false;
}
var value = parseInt($field.val());
if ($('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day').val() != "") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]');
}
return value >= 1 && value <= 12;
}
}
}
},
'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]': {
err: "#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince-date-error-messages",
excluded: false,
trigger: 'blur',
validators: {
callback: {
message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidYear, error.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidYear\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidYear, error.genericConfigurableForm.loyaltyMembershipCardValidSince.noValidYear\u003C\/span\u003E',
callback: function(value, validator, $field) {
var value = $field.val();
var currentDate = new Date().getTime();
var fieldsDDMMYYYY = value ? new Date($('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').val() + "." + $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day').val() + "." + value).getTime() : new Date().getTime()+1;
if (ACC.global.isDateFieldEmpty("registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince")) {
if ($("small[data-fv-for='" + 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]');
}
if ($("small[data-fv-for='" + 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month]');
}
$('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').addClass('date-input-no-confirmation');
return true;
} else {
$('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').removeClass('date-input-no-confirmation');
}
if($('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').val() && value && $('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day').val()){
if(typeof fieldsDDMMYYYY == "number" && (fieldsDDMMYYYY > currentDate)) {
return false;
} else if (typeof fieldsDDMMYYYY == "number" && (fieldsDDMMYYYY < currentDate)) {
return true;
}
}
if (!ACC.global.isValidYear("registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince")) {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]');
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month]');
$('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').removeClass('date-input-no-confirmation');
return false;
}
if (value.match("^\\d{4}$") != null) {
if ($('#registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day').val() != "") {
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]');
}
return true;
}
return false;
}
}
}
},
'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince]': {
trigger: 'blur',
validators: {
/**
* Validating date field with custom format when given only month/year using the callback validator and momentjs to parse/validate,
* since OOTB (form validation framework) attribute "format" of the object "date" does not support custom format validation like month/year.
* More info: https://old.formvalidation.io/validators/date/#custom-format-example
*/
callback: {
message: 'Please enter a valid date.',
message_en: 'Please enter a valid date.',
callback: function (value, validator) {
var dateFormat = 'MM.YYYY';
if (!dateFormat) {
return false;
}
var dateObjectCurrent = moment(value, dateFormat);
var minDate = moment('06.1973', dateFormat)
if (dateObjectCurrent.isBefore(minDate)) {
return false;
}
var maxDate = moment('06.2023', dateFormat)
if (dateObjectCurrent.isAfter(maxDate)) {
return false;
}
var strictMode = true; // indicates that strict mode should be applied to parse the date string
return moment(value, dateFormat, strictMode).isValid();
}
},
callbackDate: {
alias: 'callback',
callback: function(value, validator, $field) {
/** The day/month/year fields are hidden in the UI and are populated in JS, by splitting the date field.
The change in the fields is not detected in the validation framework and it requires to manually call
the revalidation after each change of the date field. Otherwise, the fields will remain in an invalid state
and the form validation will fail (preventing the form submission).
*/
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day]');
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month]');
$('.js-ch-registerWithScsOfflineMemberFormConfig').formValidation('revalidateField', 'values[registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year]');
return true;
}
},
}
}
}
}
)
.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 = 'registerWithScsOfflineMember';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'registerWithScsOfflineMemberFormDefinition';
}
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();
}
};
$('.js-registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_day').blur(function() {
removeDateMoleculeError($('.js-registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince').closest('.form-combo-molecule'));
triggerFormValidation("day", false, "registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince", "MM.yyyy");
});
$('.js-registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_month').blur(function() {
removeDateMoleculeError($('.js-registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince').closest('.form-combo-molecule'));
triggerFormValidation("month", false, "registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince", "MM.yyyy");
});
$('.js-registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince_year').blur(function() {
removeDateMoleculeError($('.js-registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince').closest('.form-combo-molecule'));
triggerFormValidation("year", false, "registerWithScsOfflineMemberFormDefinition_loyaltyMembershipCardValidSince", "MM.yyyy");
});
$(this).closest('#scRegisterWithMembershipNumberFormDefinitionWrapper').find('.js-scRegisterWithMembershipNumberFormDefinition')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[scRegisterWithMembershipNumberFormDefinition_membershipNumber]': {
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-9]*$', ''))) {
messages.push('Veuillez saisir une valeur numérique');
messagesEN.push('Veuillez saisir une valeur numérique');
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 membre.',
message_en: 'Veuillez indiquer votre numéro de membre.'
},
stringLength: {
message: 'Le nombre de caractères de ce champ doit être compris entre 0 et 11',
message_en: 'The number of characters for this field must be between 0 and 11',
min: 0
,
max: 11
},
}
},
'values[scRegisterWithMembershipNumberFormDefinition_email]': {
trigger: 'blur',
validators: {
callbackExternalEmail: {
alias: 'callback',
callback: function(value, validator, $field) {
if (value.length > 0 && !value.endsWith('@swarovski.com')) {
var errorOccured = true;
var options = {
url: 'https://api.addressy.com/EmailValidation/Interactive/Validate/v2/json3.ws?Timeout=6000&Key=AG56-NB85-BC21-KB22&Email=' + value,
method: 'POST',
async: false,
};
$.ajax(options)
.done(function(responseData) {
if (responseData !== undefined && responseData.Items !== undefined) {
var validationResult = responseData.Items[0];
if (validationResult !== undefined && validationResult.ResponseCode !== 'Invalid') {
errorOccured = false;
}
}
})
.fail(function(err) {
errorOccured = false;
});
if (errorOccured) {
return {
valid: false,
message: 'Veuillez entrer votre adresse mail.',
message_en: 'Veuillez entrer votre adresse mail.'
};
} else {
return true;
}
} else {
return true;
}
}
},
regexp: {
regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:[a-zA-Z0-9!#$%&\'*+\/=?^_‘{|}~-]+(?:\\.[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](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+(?=[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 entrer votre adresse mail.',
message_en: 'Veuillez entrer votre adresse mail.'
},
notEmpty: {
message: 'Veuillez entrer votre adresse mail.',
message_en: 'Veuillez entrer votre adresse mail.'
},
}
},
'values[scRegisterWithMembershipNumberFormDefinition_password]': {
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.match(new RegExp('(^$|^(?=.*[0-9])(?=.*[A-Z]).{7,}$)', ''))) {
messages.push('Le mot de passe doit contenir au moins 7 caractères, dont un chiffre et une majuscule.');
messagesEN.push('Le mot de passe doit contenir au moins 7 caractères, dont un chiffre et une majuscule.');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Veuillez saisir un mot de passe.',
message_en: 'Veuillez saisir un mot de passe.'
},
}
}
}
}
)
.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 = 'registerWithMembershipNumber';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'scRegisterWithMembershipNumberFormDefinition';
}
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();
}
};
- Page d'accueil
- Connexion/Inscription