Jump to content
comrues

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

Recommended Posts

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

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

 

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

Share this post


Link to post
Share on other sites

сделайте форму на аяксе

Share this post


Link to post
Share on other sites
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>

 

Share this post


Link to post
Share on other sites
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. Такой же переменной в контроллере нет. Как мне в неё что-то записать, если есть ошибка при валидации?

Share this post


Link to post
Share on other sites

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites
1 час назад, comrues сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.