Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

выполнить js если форма обратной связи не проходит валидацию


comrues

Recommended Posts

Доброго времени суток господа хорошие!))

Есть стандартная форма обратной связи. Если при отправки этой формы поля не проходят валидацию, то страница перезагружается и подсвечивает нужные поля.
Проблема в том, что у меня на этой странице не стандартный шаблон. И форма обратной связи скрывается в вкладке которая по умолчанию закрыта.
Соответственно, если человек заполнил поля неправильно страница перезагружается, поля подсвечиваются, но вкладку с формой не видно. 
Как сделать так что бы при ошибке заполнения полей после перезагрузки выполнялся мой скрипт, который откроет нужную вкладку.

 

Ниже я схематично показываю табы.
411963525_.thumb.png.ebe004697885ac8116e3a192dd5dc679.png

Надіслати
Поділитися на інших сайтах


20 минут назад, comrues сказал:

Доброго времени суток господа хорошие!))

Есть стандартная форма обратной связи. Если при отправки этой формы поля не проходят валидацию, то страница перезагружается и подсвечивает нужные поля.
Проблема в том, что у меня на этой странице не стандартный шаблон. И форма обратной связи скрывается в вкладке которая по умолчанию закрыта.
Соответственно, если человек заполнил поля неправильно страница перезагружается, поля подсвечиваются, но вкладку с формой не видно. 
Как сделать так что бы при ошибке заполнения полей после перезагрузки выполнялся мой скрипт, который откроет нужную вкладку.

 

Ниже я схематично показываю табы.
 

<?php if (count($errors)) { ?>
	<script>
		$(document).ready(function(){
			$('#idtabFeedback').click();
		});
	</script>
<?php } ?>

ну или  сразу нужному табу присваивать class="active"

<li class="<?php echo count($errors) ? 'active' : ''; ?>">Форма</li>

и блоку

<div id="idtabFeedback" class="tab-pane<?php echo count($errors) ? ' active' : ''; ?>">...</div>

 

Надіслати
Поділитися на інших сайтах

12 минут назад, Blast сказал:

<?php if (count($errors)) { ?>
	<script>
		$(document).ready(function(){
			$('#idtabFeedback').click();
		});
	</script>
<?php } ?>

ну или  сразу нужному табу присваивать class="active"


<li class="<?php echo count($errors) ? 'active' : ''; ?>">Форма</li>

и блоку


<div id="idtabFeedback" class="tab-pane<?php echo count($errors) ? ' active' : ''; ?>">...</div>

 

У меня 3 версия opencart, но я понимаю о чём вы. Только непонятно что должно быть в error. Такой же переменной в контроллере нет. Как мне в неё что-то записать, если есть ошибка при валидации?

Надіслати
Поділитися на інших сайтах


Всё разобрался. Спасибо всем!
$data['errors'] = $this->error;

если есть ошибки они записываются в переменную errors

И в twig вывожу условие на наличие этой переменной

  • +1 1
Надіслати
Поділитися на інших сайтах


1 час назад, comrues сказал:

У меня 3 версия opencart, но я понимаю о чём вы. Только непонятно что должно быть в error. Такой же переменной в контроллере нет. Как мне в неё что-то записать, если есть ошибка при валидации?

а, не заметил ветку форума и использовал более привычный формат, сорри

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.