submit.js 3.58 KB
$(
    function() {
        $(document)
            .on(
                'submit', '#get-itform', function(e) {
                    e.preventDefault();
                    var dataArray = $(this)
                        .serializeArray();
                    dataArray.forEach(
                        function(elem) {
                            console.log(elem.name);
                        }
                    );

                    var form = this;
                    if (validate(dataArray)) {
                        $.ajax(
                            {
                                url: 'http://artbox.net.ua/en/feedback',
                                type: "POST",
                                data: dataArray,
                                success: function(data) {
                                    if (data.status) {
                                        form.reset();
                                        var pos = ($(window)
                                                       .scrollTop() + 30 + 50);
                                        $('.forms_')
                                            .animate(
                                                {
                                                    opacity: 0,
                                                    top: '0'
                                                }, 200, function() {
                                                    $(this)
                                                        .css('display', 'none');
                                                    //                                            $('#overlay').fadeOut(400);
                                                }
                                            );
                                        $('#success-modal')
                                            .css('display', 'block')
                                            .animate(
                                                {
                                                    opacity: 1,
                                                    top: pos
                                                }, 200
                                            );
                                    }
                                }
                            }
                        );
                    }
                    return false;
                }
            );

        $(document)
            .on(
                'blur', '.form-control', function() {
                    var formData = $('#get-itform')
                        .serializeArray();
                    validate(formData);
                }
            );

        function validate(array) {
            var isValid = true;
            var re = /^(([^<>()\[\]\\.,;:\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,}))$/;
            array.forEach(
                function(element) {
                    switch (element.name) {
                        case 'email' :
                            if ((element.value.length === 0) || !re.test(element.value.toLowerCase())) {
                                $('#email-block')
                                    .addClass('has-error');
                                isValid = false;
                            } else {
                                $('#email-block')
                                    .removeClass('has-error');
                            }
                            break;
                    }
                }
            );

            return isValid;
        }
    }
);