[Помогите] Вызов модального окна после закрытия предыдущего

Тема в разделе "OpenCart", создана пользователем Zalom, 16 май 2017.

  1. Zalom

    Zalom

    Регистрация:
    18 мар 2017
    Сообщения:
    37
    Симпатии:
    1
    Здравствуйте. Есть модальное окно с формой, в которой есть поля и пара кнопок - отправить и закрыть. После нажатия кнопки отправить первое модальное окно должно скрыться, а за ним появиться второе.
    Я попробовал реализовать таким образом
    Код:
    $('#uvedomit').click(function(e) {
      if (document.uvedomlenie.fio.value ==''||document.uvedomlenie.phone.value ==''||document.uvedomlenie.email.value ==''||document.uvedomlenie.kolvo.value =='')
            {
                return false;
        } else {     
      e.preventDefault();
        $('#myModal')
          .modal('hide')
          .on('hidden.bs.modal', function (e) {
            $('#modal-form2').modal('show');
            $(this).off('hidden.bs.modal');
          });
        }
      });
    
    Второе окно появляется, но не отправляется форма. Когда убираю этот скрипт, ситуация обратная: форма отправляется, но второе окно не появляется.
    Я понимаю, что js скрипт перехватывает событие клика на кнопку. Вот как сделать, чтоб форма отправлялась и окно появлялось? Вот ссылка страницы http://test.zaloma.ru/postelnoe-bel...e-pul-dvuspalnoe-maks-s-prostynyoj-na-rezinke
     
  2. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    468
    Симпатии:
    137
    1) у тебя ошибке в форме (так никто тебе никто ничего не оставит, особенно телефон), номер может быть и 7 цифр)))
    2) у тебя отправка идет не асинхронная, а простой пост, страница перезагружается))
    3) у тебя ошибка в приведеном js, смотри консоль.
    4) у тебя 2 одинаковых кода js на странице)
    PS: можно сделать намного проще с js-ом, но сначала поправь то, что выше))
     
    Последнее редактирование: 16 май 2017
  3. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Ну, всё логично, вы же туда запихнули
    Код:
    e.preventDefault();
    чем заблокировали отправку форму стандартным образом. Значит вы её должны теперь отправить самостоятельно через метод .submit().
     
  4. Zalom

    Zalom

    Регистрация:
    18 мар 2017
    Сообщения:
    37
    Симпатии:
    1
    Почему никто ничего не оставит? Ну про телефон я согласен... Остальные поля я проверяю, чтоб они были заполнены. Если я поставлю для проверки выражения, все равно они не смогут отфильтровать все, что придумает пользователь.
     
  5. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    468
    Симпатии:
    137
    потому, что пользователи ленивые.
    Элементарное UX, все поля обезательные- зачем?, как это видно что они обязательные-? почему не отправляет с каким-то полем пустым, где отображение ошибки? ))))))))
     
  6. Zalom

    Zalom

    Регистрация:
    18 мар 2017
    Сообщения:
    37
    Симпатии:
    1
    асинхронная отправка делается с помощью ajax же? В url нужно указывать контроллер и функцию?
     
  7. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    468
    Симпатии:
    137
    да.
    Я только не пойму зачем на ОС велосипеды строить, если есть уже готовые модули об оповищении.
    Возможно хотите сами все сделать/разобратся, - эт правильно))
     
  8. Zalom

    Zalom

    Регистрация:
    18 мар 2017
    Сообщения:
    37
    Симпатии:
    1
    Вроде получилось сделать асинхронную отправку. При успешном запросе написал, чтоб вывел второе модальное окно (без e.preventDefault()), а он не выводит.