In order to better assist you, please select a topic
$(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: 'Seleccione el Tema\/Asunto',
message_en: 'Seleccione el Tema\/Asunto'
}
}
}
}
}
)
.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
Subject
Select one of the following subjects
$(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: 'Seleccione el Tema\/Asunto',
message_en: 'Seleccione el Tema\/Asunto'
}
}
}
}
}
)
.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();
}
};
$(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: 'Escribe el asunto',
message_en: 'Escribe el asunto'
},
stringLength: {
message: 'Este campo debe tener entre 0 y 40 caracteres',
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();
}
};
{"didYouKnowLabel":"Sabías que:","product-size":["To know your perfect size, please use our size guide.","For more information please check <a href="/s-swarovski-ring-size/" target="_blank" rel="noopener noreferrer">Size Guide</a>"],"product-availability":["To check in-store availability, follow these steps:<br/>1. Choose your product from our online shop.<br/>2. On the product details page, next to “Add to Bag”, select “Find in-store”, then click “Click & Collect: Check Availability”.<br/>3. Enter your current or preferred location and browse the available options.","For more information please check <a href="/s-faq-order/?accordionID=CC-Overview_AE-product_availibility" target="_blank" rel="noopener noreferrer">FAQ</a>"],"product-colors":["Please use the Colour Filter in the product list page or check the colour variations on the product detail page to find the perfect match."],"promotion-info":["Swarovski runs sale promotions throughout the year, to stay up to date, we recommend signing up to our newsletter."],"promotion-extension":["Our promotions always have set validity periods and once the end date has passed, either the discount voucher codes automatically stop functioning or the standard price returns. Orders placed before a promotion is released cannot be altered to take advantage of the newest promotion."],"promotion-quality":["Check the promotion Terms & Conditions to ensure your item qualifies and confirm your order was placed within the promotion period.","For more details, see our <a href="/s-faq-order/?accordionID=CC-Overview_AE-purchase_qualify" target="_blank" rel="noopener noreferrer">FAQ</a>"],"order-resendOrderConfirmation":["Certainly! If you like an update on your order, please visit <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">order status</a>. If you don't know your order number, simply provide your email address, and we'll resend the order confirmation."],"order-orderStatus":["You can easily check the status of your order here <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">Order Status</a>"],"order-cancelEntire":["An order cancellation may be possible within 15 minutes (approximately) of receipt of your order confirmation.","For more information please check <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">FAQ</a>"],"order-cancelPartially":["Partial cancellations aren't possible, only full order cancellations within approximately 15 minutes of confirmation. See <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">FAQ</a> for details."],"order-changeBillingAddress":["We are unable to change a billing addresses."],"order-return":["You can follow the steps outlined in our <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a> for detailed guidance."],"order-returnPolicy":["For more information on our return policy, please click here <a href="/s-faq-return/?accordionID=CC-Overview_AE-can-I-do-a-return" target="_blank" rel="noopener noreferrer">FAQ</a>"],"order-onlineRefundStatus":["Returns take around 14 working days. You'll receive a confirmation email once we get your return, and refund may take up to 10 working days to appear in your account.","For more details, see our <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-when-will-I-receive-my-refund" target="_blank" rel="noopener noreferrer">FAQ</a>"],"exchange-exchangeProduct":["Exchanges aren't possible. Please return unwanted items per our returns policy and place a new order for the correct product.","For more details, see our <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-purchase" target="_blank" rel="noopener noreferrer">FAQ</a>"],"exchange-exchangeInStore":["You can find detailed information in our <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-product" target="_blank" rel="noopener noreferrer">FAQ</a>"],"exchange-exchangeProductFromAnotherCountry":["Due to various reasons, Swarovski does not have an international exchange or refund policy. As a result, we are unable to exchange, substitute, or refund products purchased abroad."],"delivery-tracking":["You received the tracking link with your shipping confirmation. Alternatively, you can check the progress of your shipment here: <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">order status</a>."],"delivery-damagedItem":["We apologize for the inconvenience. Please contact our customer service and provide pictures of the shipping box and the damaged product and we will look into a solution for you."],"delivery-missingItem":["We’re sorry for the inconvenience. Was the shipping box tampered with? Please contact our customer service with photos of the shipping box, we will investigate it and find a solution for you."],"delivery-changeAddress":["Changing the delivery address or date may not be possible once a parcel is in transit. You can use our delivery partner's web portal to manage delivery options.","For more details, see our <a href="/s-faq-shipping/Swarovski-Shipping-FAQs/?accordionID=CC-Overview_AE-delivery_address" target="_blank" rel="noopener noreferrer">FAQ</a>"],"delivery-changeCountry":["Delivery to another country/region is not possible. Please order from the online shop of the delivery destination. To change country/region and language, click on the country/region name in the selector menu."],"payment-electronicCard":["Electronic gift cards are entered at payment stage in the checkout. Confirm you are entering the 10 or 16-digit card number correctly. Make sure you are not entering a money-off or discount voucher code.","For more information check here <a href="/s-faq-giftcard-voucher/Swarovski-Gift-Cards-Voucher-FAQs/?accordionID=CC-Purchase-Vouchers_AE-voucher-not-working" target="_blank" rel="noopener noreferrer">FAQ</a>"],"payment-multipleElectronicGiftCards":["To pay with multiple gift cards, please follow the steps to merge gift cards at the payment stage."],"payment-payWith":["To redeem your gift card, please follow these easy steps described in our <a href="/s-faq-giftcard-voucher/Swarovski-Gift-Cards-Voucher-FAQs/?accordionID=CC-Purchase-Vouchers_AE-redeem-gift-card" target="_blank" rel="noopener noreferrer">FAQ</a>"],"payment-rejection":["Please make sure your payment and personal data are consistent.","For more information please check <a href="/s-faq-payment/Swarovski-Payment-FAQs/?accordionID=CC-Purchase-Payment_AE-methods" target="_blank" rel="noopener noreferrer">FAQ</a>"],"website-unableToCheckout":["Please check here before contacting us <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-website-issue" target="_blank" rel="noopener noreferrer">FAQ</a>"],"website-resetPassword":["Please use the "forgot your password" function.","For more information please check here <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>"],"website-unableToLogin":["Please use the "forgot your password" function.","For more information please check here <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>"],"swarovskiclub-unsubscribeNewsletter":["We send two types of emails: newsletters with promotions and collections, and membership updates (rewards, status, or program changes). To unsubscribe from newsletters, click “unsubscribe” at the email’s bottom or update your settings in “My Account” on Swarovski.com. To stop all communications, including rewards, contact Customer Service to close your account."],"swarovskiclub-emailAfterUnsubscribe":["If you’ve unsubscribed from our newsletter but remain a Swarovski Club member, you’ll still receive emails about rewards, tier status, or program changes. To stop these, contact Customer Service to close your account. You may also be subscribed to updates from one of our sub-brands."],"swarovskiclub-voucherNotWorking":["For more details, please visit our FAQ entry on how to link your club membership and use your discount voucher. <a href="/s-faq-club/?accordionID=CC-Membership-Swa-Club_AE-not-use-discount-voucher" target="_blank" rel="noopener noreferrer">FAQ</a>"],"swarovskiclub-extendedVoucher":["Swarovski Club discount vouchers cannot be extended. The validity period is specified in the Terms & Conditions included in the reward email you received."],"swarovskiclub-saleItem":["Swarovski Club discount vouchers cannot be used on sale items. For more details, please refer to the Terms & Conditions in the reward email you received."],"swarovskiclub-birthdayGiftVoucher":["You may collect your gift from your preferred store. If you don't have one, or you aren’t sure which one to visit, you can log in to your account and select a preferred store. Alternatively, you can also use our Store finder to find a store that offers the Swarovski Club. Customers in some markets can redeem their gift online with their next online purchase."],"scsmembership-renewMembership":["To renew your membership, please follow these easy steps described in our <a href="/s-faq-scs/Swarovski-Crystal-Society-FAQs-/?accordionID=SCS-LP_FAQ_AE-how-can-I-renew-membership" target="_blank" rel="noopener noreferrer">FAQ</a>"],"scsmembership-becomeMember":["To become a new member, please follow these easy steps described in our <a href="/s-faq-scs/Swarovski-Crystal-Society-FAQs-/?accordionID=CC-Membership-SCS_AE-how-to-join-renew-online" target="_blank" rel="noopener noreferrer">FAQ</a>"],"scsmembership-membershipArrival":["Membership packages are typically sent 4-6 weeks after sign-up, with new or renewed memberships dispatched on the first day of the following month. For 3-year memberships (2nd and 3rd year), packages are sent early in the year, allowing members to enjoy the annual gift and explore new novelties."],"warranty-itemCoveredByWarrant":["Swarovski provides a full warranty for manufacturing and material defects on products purchased from official stores or authorized retailers.","For details on our warranty policy, see our <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a>"],"warranty-warrantyPolicy":["For a complete overview of our warranty policy, please visit our dedicated <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a> section."],"repair-repairableItem":["To find out, please bring your product and proof of purchase to your nearest Swarovski store for assessment.","You can find your nearest store using our online <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Store Finder</a>"],"repair-status":["You can easily check the status of your repair here <a href="/s-faq-repairs/Swarovski-Repair-Replacement-FAQs/?accordionID=CheckRepairStatusThemedAccordionEntryComponent" target="_blank" rel="noopener noreferrer">View repair status</a>"],"repair-cost":["Please bring your product and proof of purchase to your nearest Swarovski store for assessment","You can find your nearest store using our online <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Store Finder</a>"],"repair-visitStore":["You need to visit a store because only authorized stores are equipped to properly assess and repair the product."]}
3
Contact Options
Choose your preferred contact option
Correo electrónico
Tiempo de espera estimado:
1- 3 días laborables
If you have a question or require further information, then please feel free to contact us using the form below. We would be happy to help.
$(this).closest('#lu-contactEmailFormConfigWrapper').find('.js-lu-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('Introducir solo letras (sin puntos)');
messagesEN.push('Introducir solo letras (sin puntos)');
errorOccured |= true;
}
if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) {
messages.push('La longitud mínima es de 2 caracteres');
messagesEN.push('La longitud mínima es de 2 caracteres');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Introduzca su nombre.',
message_en: 'Introduzca su nombre.'
},
stringLength: {
message: 'Ha excedido la longitud máxima de 40 caracteres en este campo',
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('Introducir solo letras (sin puntos)');
messagesEN.push('Introducir solo letras (sin puntos)');
errorOccured |= true;
}
if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) {
messages.push('La longitud mínima es de 2 caracteres');
messagesEN.push('La longitud mínima es de 2 caracteres');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Por favor introduzca su apellido.',
message_en: 'Por favor introduzca su apellido.'
},
stringLength: {
message: 'Ha excedido la longitud máxima de 40 caracteres en este campo',
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('Por favor introduzca su número de teléfono. (Solamente números, no se permiten espacios)');
messagesEN.push('Por favor introduzca su número de teléfono. (Solamente números, no se permiten espacios)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'Ha excedido la longitud máxima de 20 caracteres en este campo',
message_en: 'You have exceeded the maximum length of 20 characters for this field',
max: 20
},
callbackPhone: {
alias: 'callback',
message: 'Complete el campo teléfono',
message_en: 'Complete el campo teléfono',
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: 'Por favor introduzca su correo electrónico.',
message_en: 'Por favor introduzca su correo electrónico.'
},
notEmpty: {
message: 'Por favor introduzca su correo electrónico.',
message_en: 'Por favor introduzca su correo electrónico.'
},
stringLength: {
message: 'Este campo debe tener entre 0 y 70 caracteres',
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: 'Introduzca su país\/región.',
message_en: 'Introduzca su país\/región.'
}
}
},
'values[contactEmailFormDefinition_swaClubMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMemberNumber]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Introduzca su número de suscripción SCS.',
message_en: 'Introduzca su número de suscripción SCS.'
},
stringLength: {
message: 'Este campo debe tener entre 0 y 11 caracteres',
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: 'Introduzca un mensaje',
message_en: 'Introduzca un mensaje'
},
stringLength: {
message: 'Este campo debe tener entre 0 y 1000 caracteres',
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: 'Este campo debe tener entre 0 y 40 caracteres',
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: 'Este campo debe tener entre 0 y 40 caracteres',
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: 'Seleccione el Tema\/Asunto',
message_en: 'Seleccione el Tema\/Asunto'
}
}
},
'values[contactEmailFormDefinition_contactSubject]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Seleccione el Tema\/Asunto',
message_en: 'Seleccione el Tema\/Asunto'
}
}
},
'values[contactEmailFormDefinition_contactSubjectTxt]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Escribe el asunto',
message_en: 'Escribe el asunto'
},
stringLength: {
message: 'Este campo debe tener entre 0 y 40 caracteres',
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();
}
};
Teléfono
Tiempo de espera estimado:
2- 5 Minutos
Customer service Luxembourg
Opening hours: Mon - Fri: 10:00 - 18:00
Phone:
+32 24633048
Swarovski está disponible en tu país
Ten en cuenta que solo podemos enviar tu pedido a las direcciones que se encuentren en el país seleccionado.
Realizamos envíos a otros países. ¿El país de destino no aparece en la lista?