Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ajax форма обратной связи ломает поиск по сайту (https://javascript.ru/forum/misc/78556-ajax-forma-obratnojj-svyazi-lomaet-poisk-po-sajjtu.html)

frost68 03.10.2019 17:31

laimas,
Вставил обработчик в отдельный файл и подключил его после формы
верный код?
$(document).ready(function() {
$("#firstform").submit(function(){
        // Получение форму
        var form = $(this), msg = $('.msgs') bx = form.add($('.formTitle'));
 
        $.ajax({
            type: "POST",
            url: 'modalform/mail.php',
            data: form.serialize(),
            success: function (data) {
              // Вывод сообщения об успешной отправке
              msg.html(data);
              bx.hide();
              setTimeout(function(){
                bx.show();
                msg.empty();
                $('input').not(':input[type=submit], :input[type=hidden]').val('');
              }, 3000);
            },
            error: function (jqXHR, text, error) {
                // Вывод сообщения об ошибке отправки
                msg.html(error);
                bx.hide();
                setTimeout(function(){
                  bx.show();
                  msg.empty();
                  $('input').not(':input[type=submit], :input[type=hidden]').val('');
                }, 3000);
            }
        });
        return false;
    });
});

    //для стилей формы
      var $input = $('.form-fieldset > input');
      $input.blur(function (e) {
        $(this).toggleClass('filled', !!$(this).val());
    
});

форма также не работает и редактор ругается на 4 строку

laimas 03.10.2019 17:44

Еще раз: в файле phpshop.js обработчик загрузки документа начинается в строке 586 и заканчивается в строке 1424. Вы в любом месте между этих строк должны поместить только это(!):

$("#firstform").submit(function(){
        // Получение форму
        var form = $(this), msg = $('.msgs') bx = form.add($('.formTitle'));
 
        $.ajax({
            type: "POST",
            url: 'modalform/mail.php',
            data: form.serialize(),
            success: function (data) {
              // Вывод сообщения об успешной отправке
              msg.html(data);
              bx.hide();
              setTimeout(function(){
                bx.show();
                msg.empty();
                $('input').not(':input[type=submit], :input[type=hidden]').val('');
              }, 3000);
            },
            error: function (jqXHR, text, error) {
                // Вывод сообщения об ошибке отправки
                msg.html(error);
                bx.hide();
                setTimeout(function(){
                  bx.show();
                  msg.empty();
                  $('input').not(':input[type=submit], :input[type=hidden]').val('');
                }, 3000);
            }
        });
        return false;
    });


без копирования $(document).ready(function() {. Это понятно?

frost68 03.10.2019 17:48

laimas,
я убрал этот код из phpshop.js и создал отдельный файл с кодом выше, подключил его после формы файл /modalform/js/form.js

laimas 03.10.2019 17:57

Откройте отладчик браузера, в нем во вкладке сеть будете наблюдать, что по адресу http://puls.bulean.ru/modalform/libs/remodal/form.js файла не найдено, статус 404. Другого подключения файла с таким именем не видно.

laimas 03.10.2019 18:00

И зачем дважды подключается
<script type="text/javascript" async="" src="https://www.gstatic.com/recaptcha/releases/Zy-zVXWdnDW6AUZkKlojAKGe/recaptcha__ru.js"></script>?

frost68 03.10.2019 18:04

laimas,
я пропустил, извините, но в 4 строке все еще ошибка Uncaught SyntaxError: Unexpected identifier

laimas 03.10.2019 18:05

Уберите подключение form.js, замените свой phpshop.js прикрепленным файлом, в нем вставлено так, как полагается.

frost68 03.10.2019 18:06

насколько я помню при подключении капчи она не срабатывала в модальном окне если была подключена 1 раз

frost68 03.10.2019 18:06

но с этим проблем не было

laimas 03.10.2019 18:07

Цитата:

Сообщение от frost68
не могу ответить

В секции head это прописано дважды, найдите где это в шаблоне и удалите лишнее.


Часовой пояс GMT +3, время: 02:25.