这是公司送礼的简单且绝佳方式。凭借施华洛世奇各式各样的礼品系列,我们让您更易于奖励忠诚的员工、表达赞赏、表扬人才,又或庆祝新的项目方案。从家居与办公室配饰、首饰和公司奖赏,到配饰、电子产品和订制项目皆备 — 总有一份理想的礼品符合您的需求。我们期待回应您的问题。
$(this).closest('#cn-corporateGiftsContactFormConfigWrapper').find('.js-cn-corporateGiftsContactFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[corporateGiftsContactFormDefinition_title]': {
trigger: 'change',
validators: {
notEmpty: {
message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-title\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-title\u003C\/span\u003E'
}
}
},
'values[corporateGiftsContactFormDefinition_firstName]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Please enter your first name.',
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[corporateGiftsContactFormDefinition_lastName]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Please enter your last name.',
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[corporateGiftsContactFormDefinition_jobTitle]': {
trigger: 'blur',
validators: {
stringLength: {
message: '您已超过本字段允许的最大字符长度 40',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[corporateGiftsContactFormDefinition_companyName]': {
trigger: 'blur',
validators: {
notEmpty: {
message: '请输入您的公司名称。',
message_en: 'Please enter your company name.'
},
stringLength: {
message: '您已超过本字段允许的最大字符长度 40',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[corporateGiftsContactFormDefinition_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: 'Please enter your business email address'
},
notEmpty: {
message: '请输入您的商务电邮地址',
message_en: 'Please enter your business 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[corporateGiftsContactFormDefinition_emailConfirm]': {
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: 'Please enter your business email address'
},
notEmpty: {
message: '请输入您的商务电邮地址',
message_en: 'Please enter your business 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
},
identical: {
field: 'values[corporateGiftsContactFormDefinition_email]',
message: '字段不匹配。',
message_en: 'The fields do not match.'
}
}
},
'values[corporateGiftsContactFormDefinition_country]': {
trigger: 'change',
validators: {
notEmpty: {
message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-country\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-country\u003C\/span\u003E'
}
}
},
'values[corporateGiftsContactFormDefinition_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: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-phone\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-phone\u003C\/span\u003E',
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[corporateGiftsContactFormDefinition_companySize]': {
trigger: 'change',
validators: {
notEmpty: {
message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize\u003C\/span\u003E'
}
}
},
'values[corporateGiftsContactFormDefinition_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
},
}
}
}
}
)
.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 = 'corporateGiftsContactForm';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'corporateGiftsContactFormDefinition';
}
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();
}
};