ติดต่อเรา
ยังแก้ปัญหาไม่ได้ใช่ไหม
ติดต่อฝ่ายบริการลูกค้าของสวารอฟสกี้
ติดต่อฝ่ายบริการลูกค้าของสวารอฟสกี้
ฝ่ายบริการลูกค้าของประเทศไทย
บริษัท สวารอฟสกี้ (ประเทศไทย) จำกัด
849 อาคารวรวัฒน์ ชั้น 16
ห้อง 1603-1604 ถนนสีลม
แขวงสีลม เขตบางรัก กรุงเทพมหานคร 10500
ประเทศไทย
โทรศัพท์: +66 2016 189
อีเมล: customer_service_th@swarovski.com
วันจันทร์ - วันศุกร์ 09.00 - 18.00 น.
วันเสาร์ วันอาทิตย์ และวันหยุดราชการ: ปิด
ค้นหาร้านค้า
ค้นหาร้าน Swarovski ในบริเวณใกล้เคียง
สัมผัสความงดงามของผลิตภัณฑ์ Swarovski ในร้านค้าของเรา
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('#th-shortContactFormConfigWrapper').find('.js-th-shortContactFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[shortContactFormDefinition_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('กรอกได้แต่ตัวอักษรเท่านั้น');
messagesEN.push('กรอกได้แต่ตัวอักษรเท่านั้น');
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('ความยาวขั้นต่ำคือ 2 อักขระ');
messagesEN.push('ความยาวขั้นต่ำคือ 2 อักขระ');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'โปรดกรอกชื่อของคุณ',
message_en: 'โปรดกรอกชื่อของคุณ'
},
stringLength: {
message: 'คุณใส่ข้อความในช่องข้อมูลนี้จนครบจำนวนสูงสุด 40 อักขระแล้ว',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[shortContactFormDefinition_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('กรอกได้แต่ตัวอักษรเท่านั้น');
messagesEN.push('กรอกได้แต่ตัวอักษรเท่านั้น');
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('ความยาวขั้นต่ำคือ 2 อักขระ');
messagesEN.push('ความยาวขั้นต่ำคือ 2 อักขระ');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'โปรดกรอกนามสกุลของคุณ',
message_en: 'โปรดกรอกนามสกุลของคุณ'
},
stringLength: {
message: 'คุณใส่ข้อความในช่องข้อมูลนี้จนครบจำนวนสูงสุด 40 อักขระแล้ว',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[shortContactFormDefinition_email]': {
trigger: 'blur',
validators: {
regexp: {
regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:[a-zA-Z0-9!#$%&\'*+\/=?^_‘{|}~-]+(?:\\.[a-zA-Z0-9!#$%&\'*+\/=?^_‘{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''),
message: 'โปรดกรอกที่อยู่อีเมลของคุณ',
message_en: 'โปรดกรอกที่อยู่อีเมลของคุณ'
},
notEmpty: {
message: 'โปรดกรอกที่อยู่อีเมลของคุณ',
message_en: 'โปรดกรอกที่อยู่อีเมลของคุณ'
},
stringLength: {
message: 'จำนวนอักขระสำหรับช่องนี้ต้องอยู่ระหว่าง 0 และ 70',
message_en: 'The number of characters for this field must be between 0 and 70',
min: 0
,
max: 70
},
}
},
'values[shortContactFormDefinition_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('โปรดกรอกหมายเลขโทรศัพท์ของคุณ (เพียงตัวเลขเท่านั้นและไม่เว้นวรรค)');
messagesEN.push('โปรดกรอกหมายเลขโทรศัพท์ของคุณ (เพียงตัวเลขเท่านั้นและไม่เว้นวรรค)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'คุณใส่ข้อความในช่องข้อมูลนี้จนครบจำนวนสูงสุด 20 อักขระแล้ว',
message_en: 'You have exceeded the maximum length of 20 characters for this field',
max: 20
},
callbackPhone: {
alias: 'callback',
message: 'โปรดกรอกหมายเลขโทรศัพท์ของคุณ',
message_en: 'โปรดกรอกหมายเลขโทรศัพท์ของคุณ',
callback: function (value, validator, $field) {
var prefixCountry = $field.siblings('.flag-container').children('.selected-flag').attr('title');
var isValidPrefix = prefixCountry !== undefined && prefixCountry !== 'Unknown';
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 value === '' || (isValidPrefix && isMinimumLength);
}
},
}
},
'values[shortContactFormDefinition_country]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'โปรดกรอกประเทศ\/ภูมิภาคของคุณ',
message_en: 'โปรดกรอกประเทศ\/ภูมิภาคของคุณ'
}
}
},
'values[shortContactFormDefinition_message]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'โปรดกรอกเหตุผลที่ติดต่อ',
message_en: 'โปรดกรอกเหตุผลที่ติดต่อ'
},
stringLength: {
message: 'จำนวนอักขระสำหรับช่องนี้ต้องอยู่ระหว่าง 0 และ 1000',
message_en: 'The number of characters for this field must be between 0 and 1000',
min: 0
,
max: 1000
},
}
},
'values[shortContactFormDefinition_contactTopic]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'โปรดเลือกหัวข้อของคุณ',
message_en: 'โปรดเลือกหัวข้อของคุณ'
}
}
},
'values[shortContactFormDefinition_contactSubject]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'โปรดเลือกหัวข้อของคุณ',
message_en: 'โปรดเลือกหัวข้อของคุณ'
}
}
},
'values[shortContactFormDefinition_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('โปรดกรอกหมายเลขคำสั่งซื้อที่ถูกต้อง (15 หลัก)');
messagesEN.push('โปรดกรอกหมายเลขคำสั่งซื้อที่ถูกต้อง (15 หลัก)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'จำนวนอักขระสำหรับช่องนี้ต้องอยู่ระหว่าง 0 และ 40',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
},
'values[shortContactFormDefinition_contactRepairNo]': {
trigger: 'blur',
validators: {
stringLength: {
message: 'จำนวนอักขระสำหรับช่องนี้ต้องอยู่ระหว่าง 0 และ 40',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
},
'values[shortContactFormDefinition_contactSubjectTxt]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'โปรดกรอกเรื่องของคุณ',
message_en: 'โปรดกรอกเรื่องของคุณ'
},
stringLength: {
message: 'จำนวนอักขระสำหรับช่องนี้ต้องอยู่ระหว่าง 0 และ 40',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
},
'values[shortContactFormDefinition_contactTopicTxt]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'โปรดกรอกหัวข้อของคุณ',
message_en: 'โปรดกรอกหัวข้อของคุณ'
},
stringLength: {
message: 'จำนวนอักขระสำหรับช่องนี้ต้องอยู่ระหว่าง 0 และ 40',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
},
'values[shortContactFormDefinition_scsMember]': {
trigger: 'change',
validators: {
}
},
'values[shortContactFormDefinition_scsMemberNumber]': {
trigger: 'blur',
validators: {
stringLength: {
message: 'คุณใส่ข้อความในช่องข้อมูลนี้จนครบจำนวนสูงสุด 11 อักขระแล้ว',
message_en: 'You have exceeded the maximum length of 11 characters for this field',
max: 11
},
}
},
'values[shortContactFormDefinition_swaClubMember]': {
trigger: 'change',
validators: {
}
},
'values[shortContactFormDefinition_swaClubMemberNumber]': {
trigger: 'blur',
validators: {
callback: {
callback: function(value, validator, $field) {
var messages = [];
var messagesEN = [];
var errorOccured = false;
if ($field.attr('regexCheckDisabled') === 'true') {
return true;
}
if (!value.trim().match(new RegExp('^[0-9]*$', ''))) {
messages.push('โปรดกรอกหมายเลขสมาชิกที่ยังไม่หมดอายุ');
messagesEN.push('โปรดกรอกหมายเลขสมาชิกที่ยังไม่หมดอายุ');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'จำนวนอักขระสำหรับช่องนี้ต้องอยู่ระหว่าง 0 และ 11',
message_en: 'The number of characters for this field must be between 0 and 11',
min: 0
,
max: 11
},
}
}
}
}
)
.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 = 'shortContactForm';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'shortContactFormDefinition';
}
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();
}
};