$(document).ready(function () { // Custom method to validate username $.validator.addMethod("usernameRegex", function (value, element) { return this.optional(element) || regex_first_last_name.test(value); }, "Numele trebuie să aibă mai mult de 2 caractere, și să nu aibă caractere speciale sau spații."); $.validator.addMethod("lastusernameRegex", function (value, element) { return this.optional(element) || regex_first_last_name.test(value); }, "Numele de familie trebuie să aibă mai mult de 2 caractere, și să nu aibă caractere speciale sau spații."); $.validator.addMethod("passwordRegex", function (value, element) { return this.optional(element) || /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value) && /^[0-9A-Za-z]+$/.test(value); }, 'Parola trebuie să aibă o lungime cuprinsă între 8-12 caractere, inclusiv litere (A-Z, a-z) și numere (0-9). Fără simboluri speciale (^@()#*+/\"?!=.{}~`&) și spații.'); $.validator.addMethod("phoneRegex", function (value, element) { return this.optional(element) || /^(\d[- ]?){7,11}$/.test(value); }, "Telefonul trebuie să aibă între 7 și 11 caractere, fără caractere speciale."); $(function () { var form = $("#myform") form.validate({ onfocusout: function (element) { if (this.currentElements.length != 0 && this.currentElements[0].name == "email") { rebuidEmail($(this.currentElements[0])) } this.element(element); $(element).valid() }, onkeyup: function (element) { $(element).valid() $('[name="' + element.name + '"]').val(element.value); }, rules: { first_name: { required: true, usernameRegex: true, minlength: 2, maxlength: 60, }, last_name: { required: true, lastusernameRegex: true, minlength: 2, maxlength: 60, }, password: { required: true, passwordRegex: true, minlength: 8, maxlength: 12, }, email: { required: true, email: true, }, phone: { phoneRegex: true, required: true, } }, messages: { first_name: { required: "Câmpul prenumele este obligatoriu", minlength: "Prenumele trebuie să aibă cel puțin 2 caractere", maxlength: "Prenumele poate avea maximum 25 caractere", }, last_name: { required: "Câmpul nume de familie este obligatoriu", minlength: "Numele de familie trebuie să aibă cel puțin 2 caractere", maxlength: "Numele de familie poate avea maximum 25 caractere", }, password: { required: "Câmpul parola este obligatoriu", minlength: "Parola trebuie să fie de cel puțin 8 caractere", maxlength: "Parola nu poate fi mai mare de 12 caractere", }, email: { required: "Câmpul e-mail este obligatoriu", email: "E-mailul trebuie să fie o adresă validă", }, phone: { required: "Telefonul este obligatoriu", } }, submitHandler: function (form, event) { event.preventDefault(); $('.preloader').show(); $("input[name='first_name']").each(function () { $(this).val($(this).val().substr(0, 60).replace(/[.-]/g, ' ').replace(/\s\s+/g, ' ')) }); $("input[name='last_name']").each(function () { $(this).val($(this).val().substr(0, 60).replace(/[.-]/g, ' ').replace(/\s\s+/g, ' ')) }); var msg = $(form).serialize(); var linkAdress = makeSendAdress(); console.log('linkAdress= ' + linkAdress); $.post(linkAdress, msg) .done(function (data) { var domainForPixel = $.urlParam('domain'); var lead = $('[name=first_name]').val(); var obj_data = JSON.parse(data) adress_redir = obj_data.redirect; if (domainForPixel != null) { $('body').prepend(''); } // $(".lead-name").text(lead); // $('.btn-send-thanks').attr('href', adress_redir); // if ($.urlParam('noautologin') == 1) { // setTimeout(function(){window.location = adress_redir}, 3000) // return true; // } // $('#finishPopup').fadeIn(150); setTimeout(function () { window.location = adress_redir }, 3000) }) .fail(function (jqXHR, textStatus, errorThrown) { $('.preloader').hide(); if (jqXHR.status == 400) { var obj_data = JSON.parse(jqXHR.responseText) for (key in obj_data.errors) { if (key == "CROB") { window.location = obj_data.errors[key] } else { alert(obj_data.errors[key]) } } } else { alert('Register form field error') console.log(jqXHR) } }); } }); }); }); // function makeSendAdress() { // var protocol = location.protocol; // var tmp = location.hostname.replace(/[a-z]{2}\./, ''); // tmp = protocol + '//cabinet.' + tmp + '/api/register'; // return tmp; // }