Задать вопрос
google_online
@google_online
My morning begins with coffee and Twitter.

Как сделать валидацию форм в модальном окне?

Я делаю авторизацию пользователя в модальном окне. Авторизация работает, но если пользователь вводит не существующий логин или неправильный пароль, модальное окно скрывается, но в нём(в модальном окне) если его сного вызвать то появляется сообщение о том что пароль или логин были неправильны. Как мне сделать чтобы оно не скрывалось после неправильного ввода?

views.py
class LoginFormView(FormView):
    form_class = AuthenticationForm
    template_name = 'fighter/index.html'
    success_url = "/profile"

    def form_valid(self, form):
        self.user = form.get_user()
        login(self.request, self.user)
        return super(LoginFormView, self).form_valid(form)

index.html
<div id="modal_form"><!-- Сaмo oкнo --> 
        <div id="stupidForm">ВХОД</div>
      <span id="modal_close">X</span> <!-- Кнoпкa зaкрыть --> 

      <form id="loginform" action="" method="POST">{% csrf_token %}
          <br><br><br>
            {{ form.as_p }}
          <input type="submit" name="login" value="ВОЙТИ">
      </form>
    </div>
    <div id="overlay"></div><!-- Пoдлoжкa -->

modal_window.js
$(document).ready(function() {
	$('a#go').click( function(event){ // клик пo ссылки с id="go"
		event.preventDefault(); 
		$('#overlay').fadeIn(400, 
		 	function(){ 
				$('#modal_form') 
					.css('display', 'block') 
					.animate({opacity: 1, top: '50%'}, 200); 
		});
	});
	/* Зaкрытие мoдaльнoгo oкнa*/
	$('#modal_close, #overlay').click( function(){ 
		$('#modal_form')
			.animate({opacity: 0, top: '45%'}, 200,
				function(){ // пoсле aнимaции
					$(this).css('display', 'none'); 
					$('#overlay').fadeOut(400); 
				}
			);
	});
});
  • Вопрос задан
  • 637 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
@deliro
Форму посылай AJAX'ом, вместо скрытия ставь какой-то спиннер и жди ответа. И если ответ положительный — fadeOut и перезагружай текущий урл. Ошибки из джанги посылай JsonResponse(form.errors).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽