///////////////////////////////////////////
// VALIDATION
///////////////////////////////////////////
var validator = {
regex: {
literal: '/[A-zÀ-ÿ \']/',
phone: '/^([+]?\d{1,4}[-\s]?|)\d{3}[-\s]?\d{3}[-\s]?\d{4}$/',
email: '/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/'
},
messages: {
required: "Campo obbligatorio",
literal: "Sono stati inseriti caratteri non consentiti",
phone: "Inserire un numero di telefono valido",
email: "Inserire una email valida"
},
tests: {
required: function(val) {
return val != "";
},
regex: function(val,rule) {
return val.match(validator.regex[rule]);
},
},
error: function(el,mes) {
var parent = el.closest('.form-group');
var message = $('<div class="error-msg">' + validator.messages[mes] + '</div>');
parent.find('.error-mg').remove();
message.appendTo(parent);
},
clearerror: function(el) {
el.closest('.form-group').find('.error-mg').remove();
},
validate: function(el) {
console.log(el);
var form = $(el);
var isValid = true;
var name = $(el + ' input[name="name"]');
var phone = $(el + ' input[name="telefono"]');
var email = $(el + ' input[name="email"]');
if(!validator.tests.required(name.val())) {
validator.error(name,'required');
isValid = false;
} else if(!validator.tests.regex(name.val(),'literal')) {
validator.error(name,'literal');
isValid = false;
} else {
validator.clearerror(name);
}
if(!validator.tests.required(phone.val())) {
validator.error(phone,'required');
isValid = false;
} else if(!validator.tests.regex(phone.val(),'phone')) {
validator.error(phone,'phone');
isValid = false;
} else {
validator.clearerror(phone);
}
if(!validator.tests.required(email.val())) {
validator.error(email,'required');
isValid = false;
} else if(!validator.tests.regex(email.val(),'email')) {
validator.error(email,'email');
isValid = false;
} else {
validator.clearerror(email);
}
return isValid;
}
};