Swarovski Club'a üye olun
Lütfen bir parola oluşturup Club'a üye olun.
$(this).closest('#scRegistrationFormConfigWrapper').find('.js-scRegistrationFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[sc-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: 'Bu e-posta adresi geçerli değil.',
message_en: 'Bu e-posta adresi geçerli değil.'
},
notEmpty: {
message: 'Bu e-posta adresi geçerli değil.',
message_en: 'Bu e-posta adresi geçerli değil.'
},
stringLength: {
message: 'Bu alandaki karakter sayısı 0 ve 100 arasında olmalıdır',
message_en: 'The number of characters for this field must be between 0 and 100',
min: 0
,
max: 100
},
}
},
'values[sc-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('Şifreniz şifre politikasıyla uyuşmuyor, lütfen 7 karakter uzunluğunda ve en az bir adet sayı ve bir adet büyük harf bulunan bir şifre girin.');
messagesEN.push('Şifreniz şifre politikasıyla uyuşmuyor, lütfen 7 karakter uzunluğunda ve en az bir adet sayı ve bir adet büyük harf bulunan bir şifre girin.');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Lütfen bir şifre girin.',
message_en: 'Lütfen bir şifre girin.'
},
stringLength: {
message: 'Bu alan için sunulan 64\'lık maksimum karakter limitini aştınız',
message_en: 'You have exceeded the maximum length of 64 characters for this field',
max: 64
},
}
},
'values[sc-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 = 'sc-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();
}
};