script.js 5.5 KB
$(document).ready(
    function ()
        {

            $('form.ajax-submit').on(
                'submit.fenix',
                function (event)
                    {
                        event.preventDefault();
                        event.stopPropagation();
                        if ($(this).hasClass('needs-validation'))
                            $(this).toggleClass('was-validated', $(this).get(0).checkValidity());
                        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_backvoices':
                                                        case 'form_backvoices_big': text_alert = '<p class="m-0">Заявка на звонок принята!</p>'; break;
                                                        case 'form_fenix-shprics': 
                                                            text_alert = '<p class="m-0">Ваше обращение принято на рассмотрение!</p>'; 
                                                            $(this).find('input[type="hidden"][name="comment"]').val((new Date).getTime());
                                                        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');
                                        if ($(this).attr('id')==='form_backvoices')
                                            $('#backvoicesModal').modal('hide');
                                    
                                        $(this).removeClass('was-validated');     
                                        $('#alertModal').modal('show');
                                    }
                            }
                        );
                        event.preventDefault();
                        return false;
                    }
            );

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