<!-- Settings -> JS -> Header -->
<script src="https://storage.googleapis.com/instapage-app-assets/1528144101_jquery.mask.js"></script>
<!-- Settings -> JS -> Footer -->
<script>
function page_generator(inputName) {
return window.__page_generator ? inputName : base64_encode(inputName);
}
// Form Fields
var zipField = "Zipcode";
var phoneField = "Phone Number";
var nameField = "First Name";
var surnameField = "Last Name";
// Masks
$('input[name="' + page_generator(zipField) + '"]').mask('00000');
var options = {
onKeyPress: function (cep, e, field, options) {
var masks = ['(000)-000-00000', '0-(000)-000-0000'];
var mask = (cep.length > 14) ? masks[1] : masks[0];
$('input[name="' + page_generator(phoneField) + '"]').mask(mask, options);
}
};
$('input[name="' + page_generator(phoneField) + '"]').mask('0-(000)-000-0000', options);
// Validations
if (!window.__page_generator) {
// Zip field
jQuery.validator.addMethod('ziplength', function (value, element) {
return value.length === 5;
});
$('input[name="' + base64_encode(zipField) + '"]').addClass('ziplength');
jQuery.extend($.validator.messages, { ziplength: 'field: needs to be 5 digits.' });
// Phone field
jQuery.validator.addMethod('phonelength', function (value, element) {
return value.length >= 14;
});
$('input[name="' + base64_encode(phoneField) + '"]').addClass('phonelength');
jQuery.extend($.validator.messages, { phonelength: 'field: needs to be 10 or 11 digits.' });
// Name fields
jQuery.validator.addMethod('nameValidation', function (value, element) {
return value.match(/^[a-zA-Z][^#&<>\"~;$^%{}?\d(),]{0,20}$/g)
}); // validator
$('input[name="' + base64_encode(nameField) + '"]').addClass('nameValidation');
$('input[name="' + base64_encode(surnameField) + '"]').addClass('nameValidation');
jQuery.extend($.validator.messages, { nameValidation: 'field: only alphabetical characters and hyphens.' });
jQuery.validator.addMethod('nameValidationLength', function (value, element) {
return value.length >= 2;
}); // validator
$('input[name="' + base64_encode(nameField) + '"]').addClass('nameValidationLength');
$('input[name="' + base64_encode(surnameField) + '"]').addClass('nameValidationLength');
jQuery.extend($.validator.messages, { nameValidationLength: 'field: must be be at least 2 characters.' });
}
else {
window.__custom_form_validations = [
{
fieldName: 'Zipcode',
validationFn: function (input) {
return {
isValid: input.value.length === 5,
message: window._Translate.get('field: needs to be 5 digits.'),
};
},
},
{
fieldName: 'First Name',
validationFn: function (input) {
var nameRegex = /^[a-zA-Z][^#&<>\"~;$^%{}?\d(),]{0,20}$/g;
return {
isValid: nameRegex.test(input.value),
message: window._Translate.get('field: only alphabetical characters and hyphens.'),
};
},
},
{
fieldName: 'First Name',
validationFn: function (input) {
return {
isValid: input.value.length >= 2,
message: window._Translate.get('field: must be at least 2 characters.'),
};
},
},
{
fieldName: 'Last Name',
validationFn: function (input) {
var nameRegex = /^[a-zA-Z][^#&<>\"~;$^%{}?\d(),]{0,20}$/g;
return {
isValid: nameRegex.test(input.value),
message: window._Translate.get('field: only alphabetical characters and hyphens.'),
};
},
},
{
fieldName: 'Last Name',
validationFn: function (input) {
return {
isValid: input.value.length >= 2,
message: window._Translate.get('field: must be at least 2 characters.'),
};
},
},
{
fieldName: 'Phone Number',
validationFn: function (input) {
return {
isValid: input.value.length >= 14,
message: window._Translate.get('field: needs to be 10 or 11 digits.'),
};
},
},
];
}
</script>