Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2020, 12:05
Интересующийся
Отправить личное сообщение для De12 Посмотреть профиль Найти все сообщения от De12
 
Регистрация: 21.08.2020
Сообщений: 22

Почему срабатывает отправка 2 раза?
Приветствую, данный код отвечает за отправку формы, отправляет на почту и в инфоблок битрикса, но почему-то делает это 2 раза подряд, т.е. заявки одновременно приходят по 2 штуки. Не могу разобраться почему.

case 'buy':
         $('.js-buy').bind('click', function() {
            var text = $(this).attr('data-service');
            $('.js-buy-form .js-title').text(text);
            $('.js-buy-form .js-service').val(text);
            $('.js-buy-form .js-message').hide();
            $('.js-buy-form').removeClass('invisible').addClass('visible');
            return false;
         });
         $('.js-buy-form .js-close').bind('click', function() {
            $('.js-buy-form').removeClass('visible').addClass('invisible');
            return false;
         });
         $('.js-who label').bind('click', function() {
            var is_org = $(this).attr('data-org');
            if (is_org == '1') {
               $('.js-org').show();
            } else {
               $('.js-org').hide();
               $('.js-org input').val('');
            }
            return true;
         });
         $('.js-buy-form form').bind('submit', function() {
            var has_errors = false;
            $('.js-buy-form .js-required').removeClass('error').each(function() {
               if ($(this).is(':visible') && $(this).val() == '') {
                  has_errors = true;
                  $(this).addClass('error');
               }
            });
            var $mess = $('.js-buy-form .js-message');
            $mess.hide().removeClass('error');
            if (has_errors) {
               $mess.addClass('error').text('Заполните выделенные поля.').show();
            } else {
               $.ajax({
                  url : '/forms/buy.php',
                  data : $(this).serializeArray(),
                  dataType : 'json',
                  type : 'POST',
                  cache : false,
                  success : function(answer) {
                     if (answer.ok) {
                        $mess.text('Ваш заказ отправлен.').show();
                        $('.js-buy-form').removeClass('visible').addClass('trans-delay invisible').on('transitionend', function(){
                           $(this).off('transitionend');
                           $('.js-buy-form form').trigger('reset');
                           $('.js-org').show();
                        });
                     } else {
                        $mess.addClass('error').text('Ошибка отправки. Попробуйте позже.').show();
                     }
                  },
                  error : function() {
                     $mess.addClass('error').text('Ошибка отправки. Попробуйте позже.').show();
                  }
               });
            }
            return false;
         });
         break;
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2020, 13:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Надо было html код показать, ибо проблема скорее всего в том, что события всплывают, а у вас этих щелчков немерено. И зачем установку обработчиков делать в switch, что он обрабатывает?

Последний раз редактировалось laimas, 30.08.2020 в 14:19.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему click срабатывает только со второго раза imedia Элементы интерфейса 2 25.08.2016 08:33
clearInterval срабатывает только со второго раза nikolayseo Firefox/Mozilla 3 08.12.2014 19:25
Клик по кнопке срабатывает со второго раза при первом действиии darmoid Общие вопросы Javascript 1 22.10.2014 16:45
jquery событие change не срабатывает с первого раза. daneyeah Общие вопросы Javascript 2 13.10.2014 14:06
Почему не срабатывает innerHTML? БВИ Internet Explorer 1 02.01.2009 19:00