Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Всем привет, как сделать что бы перед кнопкой "Оформить заказ" стоял чекбокс ну типа "согласен с условиями" , а кнопка "Оформить заказ" была не активна пока не отмечен этот чекбокс?

Ссылка на сообщение
Поделиться на другие сайты

design/[шаблон]/html/cart.tpl

после

{if $error == 'captcha'}Капча введена неверно{/if}

дописать

{if $error == 'terms'}Необходимо принять условия для дальнейшего оформления заказа{/if}

перед кнопкой вставить

<label for="terms">
  <input type="checkbox" name="terms" id="terms" value="agree"> <a href="terms">согласен с условиями</a>
</label>

<script>
  document.addEventListener('DOMContentLoaded', function(){ 
    var $checkbox = document.getElementById('terms'),
        $btn = document.getElementsByName('checkout')[0];

    $checkbox.addEventListener('change', function(){
      var checked = $checkbox.checked;
      if(checked)
        $btn.disabled = false;
      else
        $btn.disabled = true;
    })
  });
</script>

и добавить к кнопке атрибут disabled

view/CartView.php

 

после

elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))
{
$this->design->assign('error', 'captcha');
}

дописать

elseif(empty($this->request->post('terms')))
  $this->design->assign('error', 'terms');
Ссылка на сообщение
Поделиться на другие сайты

 

design/[шаблон]/html/cart.tpl

 

после

{if $error == 'captcha'}Капча введена неверно{/if}

дописать

{if $error == 'terms'}Необходимо принять условия для дальнейшего оформления заказа{/if}

перед кнопкой вставить

<label for="terms">
  <input type="checkbox" name="terms" id="terms" value="agree"> <a href="terms">согласен с условиями</a>
</label>

<script>
  document.addEventListener('DOMContentLoaded', function(){ 
    var $checkbox = document.getElementById('terms'),
        $btn = document.getElementsByName('checkout')[0];

    $checkbox.addEventListener('change', function(){
      var checked = $checkbox.checked;
      if(checked)
        $btn.disabled = false;
      else
        $btn.disabled = true;
    })
  });
</script>

и добавить к кнопке атрибут disabled

 

view/CartView.php

 

после

elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))
{
$this->design->assign('error', 'captcha');
}

дописать

elseif(empty($this->request->post('terms')))
  $this->design->assign('error', 'terms');

Всё супер работает. Спасибо большое.

Ссылка на сообщение
Поделиться на другие сайты

Если я правильно понимаю то если чекбокс не отмечен , то срабатывает вот это условие {if $error == 'terms'}Необходимо принять условия для дальнейшего оформления заказа{/if} и должна выводиться подсказка , но она не выводится.

Ссылка на сообщение
Поделиться на другие сайты

Если я правильно понимаю то если чекбокс не отмечен , то срабатывает вот это условие {if $error == 'terms'}Необходимо принять условия для дальнейшего оформления заказа{/if} и должна выводиться подсказка , но она не выводится.

 

Это все индивидуально на стандартном шаблоне работает

Ссылка на сообщение
Поделиться на другие сайты

У меня стандартный шаблон.

 

Это сообщение выводится если вы каким-то образом отправили форму без галочки

 

Если вы хотите такую же подсказку как на имени и email'e, то к чекбоксу нужно добавить следующие атрибуты

min="1" data-notice="Необходимо принять условия для дальнейшего оформления заказа"

и убрать у кнопки атрибут disabled, вместе со скриптом

Ссылка на сообщение
Поделиться на другие сайты

Это сообщение выводится если вы каким-то образом отправили форму без галочки

 

Если вы хотите такую же подсказку как на имени и email'e, то к чекбоксу нужно добавить следующие атрибуты

min="1" data-notice="Необходимо принять условия для дальнейшего оформления заказа"

и убрать у кнопки атрибут disabled, вместе со скриптом

Вас понял, ещё раз спасибо.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...