联系我们
联系我们
在顾客服务区或常见问题部分找不到您需要的答案吗?
请联系施华洛世奇客户服务:
请联系施华洛世奇客户服务:
搜索各地店铺
寻找附近的施华洛世奇店铺。
前往任何一间店铺发掘施华洛世奇产品的醉人魅力﹗
有关网上店铺的问题和信息(例如订单处理、付款、安全、付运或退货政策等),请填写下面的联系表格,联系施华洛世奇网上团队。
$(this).closest('#cn-shortContactFormConfigWrapper').find('.js-cn-shortContactFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[shortContactFormDefinition_title]': {
trigger: 'change',
validators: {
notEmpty: {
message: '请选择一个标题',
message_en: 'Please select a title'
}
}
},
'values[shortContactFormDefinition_firstName]': {
trigger: 'blur',
validators: {
notEmpty: {
message: '您的名字',
message_en: 'Please enter your first name.'
},
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: {
notEmpty: {
message: '请输入您的姓氏。',
message_en: 'Please enter your last name.'
},
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: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
message: '请输入您的电邮地址。',
message_en: 'Please enter your email address.'
},
notEmpty: {
message: '请输入您的电邮地址。',
message_en: 'Please enter your email address.'
},
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: {
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: 'Please enter your telephone number',
callback: function (value, validator, $field) {
var matchesRegex = true;
var regexList = [];
for (var i = 0; i < regexList.length; i++) {
matchesRegex = matchesRegex && (value.match(regexList[i])[0] === value);
}
var prefixCountry = $field.siblings('.flag-container').children('.selected-flag').attr('title');
var isValidPrefix = prefixCountry !== undefined && prefixCountry !== 'Unknown';
return value === '' || (matchesRegex && isValidPrefix);
}
},
}
},
'values[shortContactFormDefinition_country]': {
trigger: 'change',
validators: {
notEmpty: {
message: '请填写「国家\/地区」一栏,谢谢。',
message_en: 'Please enter your country\/region.'
}
}
},
'values[shortContactFormDefinition_message]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Please fill in your contact reason',
message_en: 'Please fill in your contact reason'
},
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_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_beSwaMember]': {
trigger: 'change',
validators: {
}
},
'values[shortContactFormDefinition_beSwaMemberNumber]': {
trigger: 'blur',
validators: {
}
},
'values[shortContactFormDefinition_contactTopic]': {
trigger: 'change',
validators: {
notEmpty: {
message: '请选择您的主题/题目',
message_en: 'Please select your topic'
}
}
},
'values[shortContactFormDefinition_contactSubject]': {
trigger: 'change',
validators: {
notEmpty: {
message: '请选择您的主题/题目',
message_en: 'Please select your subject'
}
}
},
'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('^(\\d{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;
}
}
},
notEmpty: {
message: 'Please enter your order number',
message_en: 'Please enter your order number'
},
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: {
notEmpty: {
message: 'Please enter your repair number',
message_en: 'Please enter your repair number'
},
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: 'Please enter your subject',
message_en: 'Please enter your subject'
},
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: 'Please enter your topic',
message_en: 'Please enter your topic'
},
stringLength: {
message: '本字段的字符数必须介于 0 和 40 间',
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) {
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('small[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", "help-block");
$(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) {
/* Remove the field messages */
$errorContent = data.element.closest('.form-combo-molecule').find('.errors');
$errorContent.find('small[data-field="' + data.field + '"]').remove();
$errorContent.find('small[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();
}
};