Kostenloser Standardversand ab 75 EUR

Kontakt

1

Fragestellung

Wählen Sie bitte ein Thema aus, damit wir Ihnen besser helfen können

Bitte wähle dein Thema/deine Fragestellung aus *
Produktinformationen
Sonderaktionen
Online-Bestellungen
Umtausch
Zustellung
Zahlung
Website-Probleme
Swarovski Club
SCS Mitgliedschaft
Gewährleistung
Reparatur
Sonstiges
$(this).closest('#contactTopicFormConfigWrapper').find('.js-contactTopicFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactTopicFormDefinition_contactTopic]': { trigger: 'change', validators: { notEmpty: { message: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus', message_en: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus' } } } } } ) .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 = 'ShortContactTopic'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactTopicFormDefinition'; } 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(); } };
2

Thema

Wählen Sie eines der folgenden Themen aus

Bitte wähle dein Thema/deine Fragestellung aus *
Wie lautet der Tracking-Link für meine Bestellung?
Ein Artikel aus meiner Bestellung ist beschädigt eingetroffen
Ein Artikel aus meiner Bestellung fehlt
Können Sie meine Lieferadresse ändern?
Wie kann ich meine Bestellung in ein anderes Land senden?
Sonstiges
Wie erneuere ich meine Mitgliedschaft?
Wie werde ich SCS Mitglied?
Wann erhalte ich mein Mitgliedspaket?
Sonstiges
Lässt sich mein Artikel reparieren?
Wo ist meine Reparatur?
Was kostet eine Reparatur?
Warum muss ich einen Store besuchen, wenn ich einen Artikel repariert haben möchte?
Sonstiges
Können Sie mich bitte zur Produktgröße beraten?
Wo ist dieses Produkt erhältlich?
Welche Farben sind erhältlich?
Sonstiges
Meine Postanschrift wurde nicht als gültige Adresse anerkannt
Ich kann das Zahlungsverfahren nicht abschließen
Können Sie das Passwort für mein Konto zurücksetzen?
Ich kann mich nicht bei meinem Konto anmelden
Sonstiges
Sonstiges
Wie melde ich mich vom Swarovski Club Newsletter ab?
Warum erhalte ich weiterhin E-Mails von Swarovski, obwohl ich mich vom Newsletter abgemeldet habe?
Mein Swarovski Club Gutschein funktioniert nicht
Kann mein Swarovski Club Rabattgutschein verlängert werden?
Kann ich meinen Swarovski Club Rabattgutschein auch für Sale-Artikel verwenden?
Wie löse ich einen Geburtstags-Geschenkgutschein ein?
Sonstiges
Fällt mein Produkt unter die Gewährleistung?
Wie lautet die Gewährleistungsrichtlinie von Swarovski?
Sonstiges
Kann ich ein Produkt von meiner Online-Bestellung umtauschen?
Kann ich ein Produkt umtauschen, das ich in einem Store in einem anderen Land gekauft habe?
Kann ich meinen Online-Einkauf in einem Store umtauschen?
Sonstiges
Warum wird meine elektronische Geschenkkarte online nicht akzeptiert?
Kann ich den Zahlungsbetrag mit mehr als einer elektronischen Geschenkkarte begleichen?
Wie bezahle ich meinen Online-Einkauf mit einer elektronischen Geschenkkarte?
Warum wurde meine Bezahlung abgelehnt?
Warum wurde meine Bezahlung rückerstattet?
Sonstiges
Können Sie mir Informationen zur aktuellen Sonderaktion geben?
Können Sie die Sonderaktion verlängern?
Warum fiel mein Einkauf nicht unter die Sonderaktion?
Sonstiges
Können Sie mir die Auftragsbestätigung noch einmal zusenden?
Wo ist meine Online-Bestellung?
Kann ich meine gesamte Online-Bestellung stornieren?
Kann ich einen Teil meiner Online-Bestellung stornieren?
Können Sie meine Rechnungsadresse ändern?
Wie kann ich meine Online-Bestellung zurücksenden?
Welche Rücknahme-Richtlinien gelten für Online-Bestellungen?
Wo ist die Kaufpreiserstattung für meine Online-Rücksendung?
Sonstiges
$(this).closest('#contactSubjectFormConfigWrapper').find('.js-contactSubjectFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactSubjectFormDefinition_contactSubject]': { trigger: 'change', validators: { notEmpty: { message: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus', message_en: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus' } } } } } ) .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 = 'ShortContactSubject'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactSubjectFormDefinition'; } 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(); } };
Thema *
$(this).closest('#contactSubjectOtherFormConfigWrapper').find('.js-contactSubjectOtherFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactSubjectOtherFormDefinition_contactSubjectTxt]': { trigger: 'keyup', validators: { notEmpty: { message: 'Bitte geben Sie einen Betreff an', message_en: 'Bitte geben Sie einen Betreff an' }, stringLength: { message: 'In diesem Feld darf die Anzahl der Zeichen nur zwischen 0 und 40 liegen', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } } } } ) .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 = 'contactSubjectOther'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactSubjectOtherFormDefinition'; } 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(); } };
3

Kontaktoptionen

Wählen Sie Ihre bevorzugte Kontaktoption

E-Mail

Voraussichtliche Wartezeit: 1– 3 Werktage

Sollten Sie eine Frage haben oder weitere Informationen benötigen, kontaktieren Sie uns bitte über das nachstehende Formular. Wir helfen Ihnen gerne weiter.

Vorname *
Familienname *
Telefon
E-Mail *
Land *
Afghanistan
Albanien
Algerien
Amerikanisch-Samoa
Amerikanische Jungferninseln
Andorra
Angola
Anguilla
Antarktis
Antigua und Barbuda
Arabische Republik Syrien
Argentinien
Armenien
Aruba
Aserbaidschan
Australien
Bahamas
Bahrain
Bangladesch
Barbados
Belgien
Belize
Benin
Bermuda
Bhutan
Bolivien
Bonaire, Sint Eustatius und Saba
Bosnien und Herzegowina
Botswana
Bouvetinsel
Brasilien
Britische Jungferninseln
Britisches Territorium im Indischen Ozean
Brunei Darussalam
Bulgarien
Burkina Faso
Burundi
Chile
Chinesisches Festland
Cookinseln
Costa Rica
Curaçao
Demokratische Republik Kongo
Demokratische Volksrepublik Korea
Demokratische Volksrepublik Laos
Deutschland
Dominica
Dominikanische Republik
Dschibuti
Dänemark
Ecuador
El Salvador
Elfenbeinküste
Eritrea
Estland
Falklandinseln
Fidschi
Finnland
Frankreich
Französisch Guyana
Französisch Polynesien
Französische Südgebiete
Färöer Inseln
Föderierte Staaten von Mikronesien
Gabun
Gambia
Georgien
Ghana
Gibraltar
Grenada
Griechenland
Grönland
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard und die McDonaldinseln
Heiliger Stuhl (Staat Vatikanstadt)
Honduras
Hong Kong SAR
Indien
Indonesien
Irak
Iran
Irland
Island
Isle of Man
Israel
Italien
Jamaika
Japan
Jemen
Jersey
Jordanien
Kaimaninseln
Kambodscha
Kamerun
Kanada
Kap Verde
Kasachstan
Katar
Kenia
Kirgisistan
Kiribati
Kokosinseln (Keelinginseln)
Kolumbien
Komoren
Kongo
Kroatien
Kuba
Kuwait
Lesotho
Lettland
Libanon
Liberia
Libysch-Arabische Dschamahirija
Liechtenstein
Litauen
Luxemburg
Macao SAR
Madagaskar
Malawi
Malaysia
Malediven
Mali
Malta
Marokko
Marshallinseln
Martinique
Mauretanien
Mauritius
Mayotte
Mazedonien
Mexiko
Moldawien
Monaco
Mongolei
Montenegro
Montserrat
Mosambik
Myanmar
Namibia
Nauru
Nepal
Neukaledonien
Neuseeland
Nicaragua
Niederlande
Niger
Nigeria
Niue
Norfolk-Insel
Norwegen
Nördliche Marianen
Oman
Osttimor
Pakistan
Palau
Palästinensische Gebiete
Panama
Papua-Neuguinea
Paraguay
Peru
Philippinen
Pitcairn
Polen
Portugal
Puerto Rico
Republik Korea
Reunion
Ruanda
Rumänien
Saint Vincent und die Grenadinen
Saint-Pierre und Miquelon
Salomonen
Sambia
Samoa
San Marino
Saudi-Arabien
Schweden
Schweiz
Senegal
Serbien
Seychellen
Sierra Leone
Simbabwe
Singapur
Sint Maarten (Niederländischer Teil)
Slowakei
Slowenien
Somalia
Spanien
Sri Lanka
St. Barthélemy
St. Helena, Ascension und Tristan da Cunha
St. Kitts und Nevis
St. Lucia
St. Martin (Französischer Teil)
Sudan
Suriname
Svalbard und Jan Mayen
Swasiland
São Tomé und Príncipe
Südafrika
Südgeorgien und die Südlichen Sandwichinseln
Tadschikistan
Taiwan Region
Tansania
Thailand
Togo
Tokelau
Tonga
Trinidad und Tobago
Tschad
Tschechien
Tunesien
Turkmenistan
Turks- und Caicos-Inseln
Tuvalu
Türkiye
Uganda
Ukraine
Ungarn
Uruguay
Usbekistan
Vanuatu
Venezuela
Vereinigte Arabische Emirate
Vereinigte Staaten
Vereinigte Staaten ohne Außengebiete
Vereinigtes Königreich
Vietnam
Wallis und Futuna
Weihnachtsinsel
Weißrussland
Westsahara
Zentralafrikanische Republik
Zypern
Ägypten
Äquatorialguinea
Äthiopien
Åland Inseln
Österreich
Bestellnummer
Reparaturnummer
Thema *
Sind Sie Mitglied des Swarovski Club Treueprogramms?
Sind Sie Mitglied der Swarovski Crystal Society (SCS)?
Mitgliedsnummer *
Noch 1000 Zeichen
Bitte wähle dein Thema/deine Fragestellung aus *
Produktinformationen
Sonderaktionen
Online-Bestellungen
Umtausch
Zustellung
Zahlung
Website-Probleme
Swarovski Club
SCS Mitgliedschaft
Gewährleistung
Reparatur
Sonstiges
Bitte wähle dein Thema/deine Fragestellung aus *
Wie lautet der Tracking-Link für meine Bestellung?
Ein Artikel aus meiner Bestellung ist beschädigt eingetroffen
Ein Artikel aus meiner Bestellung fehlt
Können Sie meine Lieferadresse ändern?
Wie kann ich meine Bestellung in ein anderes Land senden?
Sonstiges
Wie erneuere ich meine Mitgliedschaft?
Wie werde ich SCS Mitglied?
Wann erhalte ich mein Mitgliedspaket?
Sonstiges
Lässt sich mein Artikel reparieren?
Wo ist meine Reparatur?
Was kostet eine Reparatur?
Warum muss ich einen Store besuchen, wenn ich einen Artikel repariert haben möchte?
Sonstiges
Können Sie mich bitte zur Produktgröße beraten?
Wo ist dieses Produkt erhältlich?
Welche Farben sind erhältlich?
Sonstiges
Meine Postanschrift wurde nicht als gültige Adresse anerkannt
Ich kann das Zahlungsverfahren nicht abschließen
Können Sie das Passwort für mein Konto zurücksetzen?
Ich kann mich nicht bei meinem Konto anmelden
Sonstiges
Sonstiges
Wie melde ich mich vom Swarovski Club Newsletter ab?
Warum erhalte ich weiterhin E-Mails von Swarovski, obwohl ich mich vom Newsletter abgemeldet habe?
Mein Swarovski Club Gutschein funktioniert nicht
Kann mein Swarovski Club Rabattgutschein verlängert werden?
Kann ich meinen Swarovski Club Rabattgutschein auch für Sale-Artikel verwenden?
Wie löse ich einen Geburtstags-Geschenkgutschein ein?
Sonstiges
Fällt mein Produkt unter die Gewährleistung?
Wie lautet die Gewährleistungsrichtlinie von Swarovski?
Sonstiges
Kann ich ein Produkt von meiner Online-Bestellung umtauschen?
Kann ich ein Produkt umtauschen, das ich in einem Store in einem anderen Land gekauft habe?
Kann ich meinen Online-Einkauf in einem Store umtauschen?
Sonstiges
Warum wird meine elektronische Geschenkkarte online nicht akzeptiert?
Kann ich den Zahlungsbetrag mit mehr als einer elektronischen Geschenkkarte begleichen?
Wie bezahle ich meinen Online-Einkauf mit einer elektronischen Geschenkkarte?
Warum wurde meine Bezahlung abgelehnt?
Warum wurde meine Bezahlung rückerstattet?
Sonstiges
Können Sie mir Informationen zur aktuellen Sonderaktion geben?
Können Sie die Sonderaktion verlängern?
Warum fiel mein Einkauf nicht unter die Sonderaktion?
Sonstiges
Können Sie mir die Auftragsbestätigung noch einmal zusenden?
Wo ist meine Online-Bestellung?
Kann ich meine gesamte Online-Bestellung stornieren?
Kann ich einen Teil meiner Online-Bestellung stornieren?
Können Sie meine Rechnungsadresse ändern?
Wie kann ich meine Online-Bestellung zurücksenden?
Welche Rücknahme-Richtlinien gelten für Online-Bestellungen?
Wo ist die Kaufpreiserstattung für meine Online-Rücksendung?
Sonstiges
* Pflichtfelder
$(this).closest('#de-contactEmailFormConfigWrapper').find('.js-de-contactEmailFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[contactEmailFormDefinition_title]': { trigger: 'change', validators: { } }, 'values[contactEmailFormDefinition_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('Nur Buchstaben eingeben (keine Satzzeichen)'); messagesEN.push('Nur Buchstaben eingeben (keine Satzzeichen)'); 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('Mindestens 2 Zeichen'); messagesEN.push('Mindestens 2 Zeichen'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Bitte geben Sie Ihren Vornamen ein.', message_en: 'Bitte geben Sie Ihren Vornamen ein.' }, stringLength: { message: 'Sie haben mehr Zeichen eingegeben als die in diesem Feld erlaubte Anzahl von 40 Zeichen', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[contactEmailFormDefinition_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('Nur Buchstaben eingeben (keine Satzzeichen)'); messagesEN.push('Nur Buchstaben eingeben (keine Satzzeichen)'); 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('Mindestens 2 Zeichen'); messagesEN.push('Mindestens 2 Zeichen'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Bitte geben Sie Ihren Familiennamen ein.', message_en: 'Bitte geben Sie Ihren Familiennamen ein.' }, stringLength: { message: 'Sie haben mehr Zeichen eingegeben als die in diesem Feld erlaubte Anzahl von 40 Zeichen', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[contactEmailFormDefinition_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('Bitte geben Sie Ihre Telefonnummer ein. (Nur Zahlen, keine Abstände)'); messagesEN.push('Bitte geben Sie Ihre Telefonnummer ein. (Nur Zahlen, keine Abstände)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, stringLength: { message: 'Sie haben mehr Zeichen eingegeben als die in diesem Feld erlaubte Anzahl von 20 Zeichen', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Bitte befülle das Feld Telefon', message_en: 'Bitte befülle das Feld Telefon', 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[contactEmailFormDefinition_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: 'Bitte gib eine E-Mail-Adresse ein.', message_en: 'Bitte gib eine E-Mail-Adresse ein.' }, notEmpty: { message: 'Bitte gib eine E-Mail-Adresse ein.', message_en: 'Bitte gib eine E-Mail-Adresse ein.' }, stringLength: { message: 'In diesem Feld darf die Anzahl der Zeichen nur zwischen 0 und 70 liegen', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, } }, 'values[contactEmailFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Bitte gib ein Land\/Region ein.', message_en: 'Bitte gib ein Land\/Region ein.' } } }, 'values[contactEmailFormDefinition_swaClubMember]': { trigger: 'change', validators: { } }, 'values[contactEmailFormDefinition_scsMember]': { trigger: 'change', validators: { } }, 'values[contactEmailFormDefinition_scsMemberNumber]': { trigger: 'blur', validators: { notEmpty: { message: 'Bitte geben Sie Ihre SCS Mitgliedsnummer an', message_en: 'Bitte geben Sie Ihre SCS Mitgliedsnummer an' }, stringLength: { message: 'In diesem Feld darf die Anzahl der Zeichen nur zwischen 0 und 11 liegen', message_en: 'The number of characters for this field must be between 0 and 11', min: 0 , max: 11 }, } }, 'values[contactEmailFormDefinition_message]': { trigger: 'blur', validators: { notEmpty: { message: 'Bitte gib eine Mitteilung ein', message_en: 'Bitte gib eine Mitteilung ein' }, stringLength: { message: 'In diesem Feld darf die Anzahl der Zeichen nur zwischen 0 und 1000 liegen', message_en: 'The number of characters for this field must be between 0 and 1000', min: 0 , max: 1000 }, } }, 'values[contactEmailFormDefinition_contactOrderNo]': { 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('^([a-zA-Z0-9]{15})$|^$', ''))) { messages.push('Please enter a valid order number (15 digits)'); messagesEN.push('Please enter a valid order number (15 digits)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, stringLength: { message: 'In diesem Feld darf die Anzahl der Zeichen nur zwischen 0 und 40 liegen', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } }, 'values[contactEmailFormDefinition_contactRepairNo]': { trigger: 'blur', validators: { stringLength: { message: 'In diesem Feld darf die Anzahl der Zeichen nur zwischen 0 und 40 liegen', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } }, 'values[contactEmailFormDefinition_contactTopic]': { trigger: 'change', validators: { notEmpty: { message: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus', message_en: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus' } } }, 'values[contactEmailFormDefinition_contactSubject]': { trigger: 'change', validators: { notEmpty: { message: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus', message_en: 'Bitte wählen Sie Ihr Thema\/Ihre Fragestellung aus' } } }, 'values[contactEmailFormDefinition_contactSubjectTxt]': { trigger: 'blur', validators: { notEmpty: { message: 'Bitte geben Sie einen Betreff an', message_en: 'Bitte geben Sie einen Betreff an' }, stringLength: { message: 'In diesem Feld darf die Anzahl der Zeichen nur zwischen 0 und 40 liegen', message_en: 'The number of characters for this field must be between 0 and 40', min: 0 , max: 40 }, } } } } ) .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 = 'contactEmail'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'contactEmailFormDefinition'; } 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(); } };