script.js 5.7 KB
$(document).ready(
    function ()
        {
            $('#fenix_garantii form').on(
                'submit.fenix',
                function (event)
                    {
                        var action = $(this).attr('action');
                        $.ajax(
                            {
                                method: 'POST',
                                url: action,
                                data: $( this ).serialize(),
                                context: $( this ),
                                beforeSend: function(xhr){
                                    $(this).find('.form-preloader').removeClass('d-none');
                                },
                                success: function ( data, textStatus, jqXHR )
                                    {
                                        var error_text = [];
                                        $(jqXHR.responseText).filter('.wp-die-message').each(
                                            function ()
                                                {
                                                    error_text.push($(this).text());
                                                }
                                        );
                                        if (error_text.length>0)
                                            $('#alertModalBody').html(error_text.join());
                                                else
                                            {
                                                var text_alert = '';
                                                switch($(this).attr('id'))
                                                    {
                                                        case 'form_consult': text_alert = '<p class="m-0">Ваше обращение принято на рассмотрение!</p>'; break;
                                                        default: text_alert = '<p class="m-0">Спасибо за отзыв!</p>'; break;
                                                    }
                                                $('#alertModalBody').html(text_alert);
                                                $(this).find('input[type="checkbox"]').prop('checked', false);
                                                $(this).find('input[type="text"]').val('');
                                                $(this).find('input[type="email"]').val('');
                                                $(this).find('textarea').val('');
                                            }
                                    },
                                error: function ( jqXHR, textStatus, errorThrown )   
                                    {
                                        var error_text = [];
                                        $(jqXHR.responseText).filter('.wp-die-message').each(
                                            function ()
                                                {
                                                    error_text.push($(this).text());
                                                }
                                        );
                                        
                                        $('#alertModalBody').html(
                                            '<p class="m-0">'+
                                                (
                                                    error_text.length==0?
                                                        'Ошибка отправки данных.':
                                                        error_text.join()
                                                )+
                                            '</p>'
                                        );
                                    },
                                complete: function( jqXHR, textStatus )
                                    {
                                        $('.captcha-refrash').trigger('click.fenix');
                                        $(this).find('.form-preloader').addClass('d-none');
                                    
                                        $(this).removeClass('was-validated');     
                                        $('#alertModal').modal('show');
                                    }
                            }
                        );
                        event.preventDefault();
                        return false;
                    }
            );

            // Получите все формы, к которым мы хотим применить пользовательские стили проверки Bootstrap
            var forms = document.querySelectorAll('.needs-validation')
            // Зацикливайтесь на них и предотвращайте отправку
            Array.prototype.slice.call(forms).forEach(
                function (form) 
                    {
                        form.addEventListener(
                            'submit', 
                            function (event) 
                                {
                                    if (!form.checkValidity()) 
                                        {
                                            event.preventDefault()
                                            event.stopPropagation()
                                        }
                            
                                    form.classList.add('was-validated')
                                }, 
                            false
                        );
                    }
            );

            //Маска ввода телефона
            $('input[name="phone"]').inputmask({"mask": "+7 (999) 999-99-99"});
        }
);