[Помогите] Ajax Quick Checkout

Тема в разделе "OpenCart", создана пользователем dwm, 28 май 2019.

  1. dwm

    dwm

    Регистрация:
    31 окт 2012
    Сообщения:
    139
    Симпатии:
    14
    Приветствую. Использую стандартный шаблон и модуль Ajax Quick Checkout. Столкнулся с проблемой: написали из гугла, что нужно скрыть неиспользуемые поля при выборе способа доставки.
    То есть, получается:
    если выбран самовывоз, то все скрыто;
    если выбрана доставка почтой, то видно ФИО + склад почты;
    если курьер, то скрыт склад.
    Мозгами я понимаю как это делать и моих знаний в JS достаточно, чтобы проверить checked, присвоить display:none
    Но все усугубляется тем, что все эти id создаются через AJAX. Может кто-то сталкивался, знает решение?

    Заранее большое спасибо!
     
  2. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Чтоб ловить события на элементах, которых изначально нет при загрузке страницы, надо вешать обработчик так:
    Код:
    $(document).on('change', 'chebox_id', function(){});
    Либо можно перейти на Симпл, где связь полей и методов задаётся в настройках.

    Первый раз о таком слышу.
     
    dwm нравится это.
  3. dwm

    dwm

    Регистрация:
    31 окт 2012
    Сообщения:
    139
    Симпатии:
    14
    Спасибо за ответ

    Да, я сам в шоке. Если бы не столкнулся с этим.

    Да у меня там уже столько всего привязано, что переход на симплу может быть проблематичен, хотя, как вариант рассмотрю, за что еще раз спасибо.

    Я пробовал делать так, как Вы написали, но ничего не получается. Если не в тягость, можете написать как это сделать, если у меня id="flat.flat", а скрыть надо id="shipping_address_company_input"

    Хз, если и Вы не поможете, то буду раскошеливаться на симплу, чего не хотелось бы...

    Заранее большое спасибо!
     
  4. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Как-то так:
    Код:
    $(document).on('change', '#flat.flat', function(){
      if($(this).prop('checked')){
          $('#shipping_address_company_input').hide();
      } else {
          $('#shipping_address_company_input').show();
      }
    });
    Если не сработает, надо экспериментировать вживую.
     
    dwm нравится это.
  5. dwm

    dwm

    Регистрация:
    31 окт 2012
    Сообщения:
    139
    Симпатии:
    14
    Не работает. Увы...