bux23
2/6/2018 - 10:48 AM

validation test

///////////////////////////////////////////
// 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;
    }
};