Aderir ao Swarovski Club
Crie uma palavra-passe e adira ao clube
$(this).closest('#dk-longRegistrationFormConfigWrapper').find('.js-dk-longRegistrationFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[longRegistrationFormDefinition_title]': {
trigger: 'change',
validators: {
}
},
'values[longRegistrationFormDefinition_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('Só são permitidas letras');
messagesEN.push('Só são permitidas letras');
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('Comprimento mínimo de 2 caracteres');
messagesEN.push('Comprimento mínimo de 2 caracteres');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Introduza o seu nome próprio.',
message_en: 'Introduza o seu nome próprio.'
},
stringLength: {
message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[longRegistrationFormDefinition_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('Apenas são permitidas letras');
messagesEN.push('Apenas são permitidas letras');
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('Comprimento mínimo de 2 caracteres');
messagesEN.push('Comprimento mínimo de 2 caracteres');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Introduza o seu apelido.',
message_en: 'Introduza o seu apelido.'
},
stringLength: {
message: 'Ultrapassou o comprimento máximo de 40 carateres para este campo',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[longRegistrationFormDefinition_addressLine1]': {
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\\s].*)(?!(.*(mailbox|Postfach|postfach|post fach|Post Fach|Post fach|post Fach|PickPost|Mailbox|PSC Box|PO Box|P.O. box|Post Box|Post Office Box|Postal Box|Packstation|packstation|pack station|Schließfach|schließfach|schliessfach|casella postale|codigo postal|Boîte Postale|Boite postale|Casier postal|Case Postale|우편 번호|郵便番号|邮递区号|私書箱)))(.*)$', 'i'))) {
messages.push('Este campo deve incluir, no mínimo, uma letra. Não é possível proceder entregas a caixas postais.');
messagesEN.push('Este campo deve incluir, no mínimo, uma letra. Não é possível proceder entregas a caixas postais.');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Introduza a sua rua\/o seu número',
message_en: 'Introduza a sua rua\/o seu número'
},
stringLength: {
message: 'Ultrapassou o comprimento máximo de 30 carateres para este campo',
message_en: 'You have exceeded the maximum length of 30 characters for this field',
max: 30
},
}
},
'values[longRegistrationFormDefinition_addressLine2]': {
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('^(?!(.*(CP|mailbox|Postfach|postfach|post fach|Post Fach|Post fach|post Fach|PickPost|Mailbox|PSC Box|PO Box|P.O. box|Post Box|Post Office Box|Postal Box|Packstation|packstation|pack station|Schließfach|schließfach|schliessfach|casella postale|codigo postal|Boîte Postale|Boite postale|Casier postal|Case Postale|우편 번호|郵便番号|邮递区号|私書箱)))(.*)$', 'i'))) {
messages.push('PO Box address is not allowed, please enter a valid address');
messagesEN.push('PO Box address is not allowed, please enter a valid address');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'Ultrapassou o comprimento máximo de 30 carateres para este campo',
message_en: 'You have exceeded the maximum length of 30 characters for this field',
max: 30
},
}
},
'values[longRegistrationFormDefinition_zip]': {
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,4})?$', ''))) {
messages.push('Corrija o código postal, p. ex., 8543 Hornslet (3 a 4 dígitos)');
messagesEN.push('Corrija o código postal, p. ex., 8543 Hornslet (3 a 4 dígitos)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Introduza o seu código postal.',
message_en: 'Introduza o seu código postal.'
},
stringLength: {
message: 'Ultrapassou o comprimento máximo de 9 carateres para este campo',
message_en: 'You have exceeded the maximum length of 9 characters for this field',
max: 9
},
}
},
'values[longRegistrationFormDefinition_town]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Introduza a sua cidade\/localidade.',
message_en: 'Introduza a sua cidade\/localidade.'
},
stringLength: {
message: 'Ultrapassou o comprimento máximo de 30 carateres para este campo',
message_en: 'You have exceeded the maximum length of 30 characters for this field',
max: 30
},
}
},
'values[longRegistrationFormDefinition_country]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Introduza o seu país\/a sua região.',
message_en: 'Introduza o seu país\/a sua região.'
}
}
},
'values[longRegistrationFormDefinition_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('Introduza o seu número de telefone (apenas números, sem espaços)');
messagesEN.push('Introduza o seu número de telefone (apenas números, sem espaços)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Introduza o seu número de telefone',
message_en: 'Introduza o seu número de telefone'
},
stringLength: {
message: 'Este campo deve ter entre 5 e 20 caracteres',
message_en: 'The number of characters for this field must be between 5 and 20',
max: 20
},
callbackPhone: {
alias: 'callback',
message: 'Introduza o seu número de telefone',
message_en: 'Introduza o seu número de telefone',
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 = "5";
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[longRegistrationFormDefinition_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: 'Introduza o seu endereço de e-mail.',
message_en: 'Introduza o seu endereço de e-mail.'
},
notEmpty: {
message: 'Introduza o seu endereço de e-mail.',
message_en: 'Introduza o seu endereço de e-mail.'
},
stringLength: {
message: 'Este campo deve ter entre 0 e 70 caracteres',
message_en: 'The number of characters for this field must be between 0 and 70',
min: 0
,
max: 70
},
}
},
'values[longRegistrationFormDefinition_birthdate_day]': {
err: "#longRegistrationFormDefinition_birthdate-date-error-messages",
excluded: false,
trigger: 'blur',
validators: {
callback: {
message: 'Introduza uma data de nascimento válida',
message_en: 'Introduza uma data de nascimento válida',
callback: function(value, validator, $field) {
var input = $('#longRegistrationFormDefinition_birthdate_day');
if($('#longRegistrationFormDefinition_birthdate_month').val() && value && $('#longRegistrationFormDefinition_birthdate_year').val()){
var currentDate = new Date().getTime();
var fieldsDDMMYYYY = value ? new Date($('#longRegistrationFormDefinition_birthdate_month').val() + "." + value + "." + $('#longRegistrationFormDefinition_birthdate_year').val()).getTime() : new Date().getTime() + 1;
if(typeof fieldsDDMMYYYY == "number" && ((fieldsDDMMYYYY > currentDate)||(fieldsDDMMYYYY < currentDate))) {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]');
}
}
if (ACC.global.isDateFieldEmpty("longRegistrationFormDefinition_birthdate")) {
if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_month]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month');
}
if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_year]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_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 = $('#longRegistrationFormDefinition_birthdate_month').val();
var yearValue = $('#longRegistrationFormDefinition_birthdate_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[longRegistrationFormDefinition_birthdate_month]': {
err: "#longRegistrationFormDefinition_birthdate-date-error-messages",
excluded: false,
trigger: 'blur',
validators: {
callback: {
message: 'Introduza um mês de data de nascimento válido',
message_en: 'Introduza um mês de data de nascimento válido',
callback: function(value, validator, $field) {
if(value && $('#longRegistrationFormDefinition_birthdate_day').val() && $('#longRegistrationFormDefinition_birthdate_year').val()){
var currentDate = new Date().getTime();
var fieldsDDMMYYYY = new Date(value + "." + $('#longRegistrationFormDefinition_birthdate_day').val() + "." + $('#longRegistrationFormDefinition_birthdate_year').val()).getTime();
if(typeof fieldsDDMMYYYY == "number" && ((fieldsDDMMYYYY > currentDate)||(fieldsDDMMYYYY < currentDate))) {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]');
}
}
if (ACC.global.isDateFieldEmpty("longRegistrationFormDefinition_birthdate")) {
if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_day]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]');
}
if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_year]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]');
}
$('#longRegistrationFormDefinition_birthdate_month').addClass('date-input-no-confirmation');
return true;
} else {
$('#longRegistrationFormDefinition_birthdate_month').removeClass('date-input-no-confirmation');
}
if ($field.val().match("^\\d+$") == null){
return false;
}
var value = parseInt($field.val());
if ($('#longRegistrationFormDefinition_birthdate_day').val() != "") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]');
}
return value >= 1 && value <= 12;
}
}
}
},
'values[longRegistrationFormDefinition_birthdate_year]': {
err: "#longRegistrationFormDefinition_birthdate-date-error-messages",
excluded: false,
trigger: 'blur',
validators: {
callback: {
message: 'Introduza um ano de nascimento válido',
message_en: 'Introduza um ano de nascimento válido',
callback: function(value, validator, $field) {
var value = $field.val();
var currentDate = new Date().getTime();
var fieldsDDMMYYYY = value ? new Date($('#longRegistrationFormDefinition_birthdate_month').val() + "." + $('#longRegistrationFormDefinition_birthdate_day').val() + "." + value).getTime() : new Date().getTime()+1;
if (ACC.global.isDateFieldEmpty("longRegistrationFormDefinition_birthdate")) {
if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_day]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]');
}
if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_month]' +"']").attr('data-fv-result') == "INVALID") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month]');
}
$('#longRegistrationFormDefinition_birthdate_year').addClass('date-input-no-confirmation');
return true;
} else {
$('#longRegistrationFormDefinition_birthdate_year').removeClass('date-input-no-confirmation');
}
if($('#longRegistrationFormDefinition_birthdate_month').val() && value && $('#longRegistrationFormDefinition_birthdate_day').val()){
if(typeof fieldsDDMMYYYY == "number" && (fieldsDDMMYYYY > currentDate)) {
return false;
} else if (typeof fieldsDDMMYYYY == "number" && (fieldsDDMMYYYY < currentDate)) {
return true;
}
}
if (!ACC.global.isValidYear("longRegistrationFormDefinition_birthdate")) {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]');
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month]');
$('#longRegistrationFormDefinition_birthdate_year').removeClass('date-input-no-confirmation');
return false;
}
if (value.match("^\\d{4}$") != null) {
if ($('#longRegistrationFormDefinition_birthdate_day').val() != "") {
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]');
}
return true;
}
return false;
}
}
}
},
'values[longRegistrationFormDefinition_birthdate]': {
trigger: 'blur',
validators: {
/**
* Validating date field with custom format when given both date and time.
* More info on how to configure other attributes and supported formats:
* https://old.formvalidation.io/validators/date/
*/
date: {
format: 'DD.MM.YYYY',
separator: '.',
max: '25.02.2026',
message: 'Introduza uma data de nascimento válida dd.MM.yyyy',
message_en: 'Introduza uma data de nascimento válida dd.MM.yyyy'
},
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-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]');
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month]');
$('.js-dk-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]');
return true;
}
},
}
},
'values[longRegistrationFormDefinition_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('A palavra-passe tem de conter, pelo menos, 7 caracteres e um algarismo e uma maiúscula.');
messagesEN.push('A palavra-passe tem de conter, pelo menos, 7 caracteres e um algarismo e uma maiúscula.');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Introduza uma palavra-passe.',
message_en: 'Introduza uma palavra-passe.'
},
stringLength: {
message: 'Ultrapassou o comprimento máximo de 64 carateres para este campo',
message_en: 'You have exceeded the maximum length of 64 characters for this field',
max: 64
},
}
},
'values[longRegistrationFormDefinition_newsletter]': {
trigger: 'change',
validators: {
}
}
}
}
)
.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 = 'registerNewCustomer';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'longRegistrationFormDefinition';
}
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-longRegistrationFormDefinition_birthdate_day').blur(function() {
removeDateMoleculeError($('.js-longRegistrationFormDefinition_birthdate').closest('.form-combo-molecule'));
triggerFormValidation("day", false, "longRegistrationFormDefinition_birthdate", "dd.MM.yyyy");
});
$('.js-longRegistrationFormDefinition_birthdate_month').blur(function() {
removeDateMoleculeError($('.js-longRegistrationFormDefinition_birthdate').closest('.form-combo-molecule'));
triggerFormValidation("month", false, "longRegistrationFormDefinition_birthdate", "dd.MM.yyyy");
});
$('.js-longRegistrationFormDefinition_birthdate_year').blur(function() {
removeDateMoleculeError($('.js-longRegistrationFormDefinition_birthdate').closest('.form-combo-molecule'));
triggerFormValidation("year", false, "longRegistrationFormDefinition_birthdate", "dd.MM.yyyy");
});