Отключить появление CSS3 при нажатии кнопки отправки

У меня есть эффект затухания, который отлично работает, когда загружается моя страница входа.

Я использую форму для сбора имени пользователя и пароля от пользователя, подключенного к базе данных. У меня также есть ошибка PHP, которая показывает, когда имя пользователя и пароль неверны или данные не были вставлены.

Моя проблема в том, что когда я нажимаю «Отправить», ничего не вводя, моя страница снова исчезает, а затем показывает ошибку.

Как я могу остановить постепенное исчезновение страницы при отображении сообщений об ошибках?

Я действительно хочу, чтобы страница исчезла, когда пользователь впервые заходит на сайт.

CSS:

  body{
 animation: fadein 1.5s;}

   @keyframes fadein {
   from { opacity: 0; }
  to   { opacity: 1; }
  }

PHP показывает ошибку:

  <p><?php echo $error; ?></p>

Вы перезагружаете страницу после отправки формы?

Rob Monhemius 18.03.2018 18:58

Если данные неверны, страница перезагружается и отображается сообщение об ошибке.

Jordan 18.03.2018 20:42
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
2
572
2

Ответы 2

Вы можете повторить стиль в дополнение к ошибке, которая перезапишет анимацию. Например:

<style>
   body{
      animation:unset !important;
   }
</style>

Используйте !важный, только если ваша ошибка повторяется перед css.

извините, я думал, что это сработало, но на самом деле анимация перестала работать.

Jordan 18.03.2018 19:06

Самым простым решением будет требование проверки вашей формы на стороне клиента. Это предотвратит повторную загрузку страницы каждый раз, когда нажимается кнопка отправки, а форма не является полной или удовлетворительной.

Добавьте атрибут «required» к своим входным данным (как минимум) или добавьте проверку JS.

Например:

  <input type = "text" id = "username" required>
  <input type = "password" id = "password" required">
  <button type = "submit">Submit</button>

Это поддерживается большинством браузеров. https://caniuse.com/#feat=form-validation

Лучше всего дополнить это проверкой javascript. Вы можете найти дополнительную информацию о MDN. https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Form_validation

Обновлено: Чтобы ответить на ваш комментарий:

Как вы видите, единственное, что проверяет проверка на стороне клиента, это (а) завершение и / или (б) условие шаблона (например, регулярное выражение или условие HTML5 [input type = "email", input type = «число» и др.]).

Проверка имени пользователя и пароля для существующих пользователей в базе данных будет зависеть от проверки PHP (или другого обработчика на стороне сервера). Без использования AJAX невозможно проверить правильность имени пользователя и пароля без перезагрузки страницы. Предполагая, что вы хотите пропустить изучение AJAX для этого, вы можете попробовать следующее:

If (username) and (password) == (username) and (password)
{redirect to ('success.html')}
else {redirect to ('fail.html')}
NOTE: THIS IS AN OUTLINE OF CONCEPT -- NOT THE ACTUAL CODE

На 'fail.html' не включайте постепенное появление. Это будет означать, что пользователь перейдет на страницу входа (которая постепенно исчезнет), а оттуда перейдет либо на страницу успеха, либо на страницу ошибки, ни одна из которых не будет включать код для постепенного появления.

Это останавливает загрузку страницы, если ничего не введено, но при вводе неправильного имени пользователя или пароля страница все равно загружается.

Jordan 18.03.2018 20:41

Спасибо @ hypern00b. Думаю, AJAX - лучший способ добиться того, чего я хочу. Я очень мало знаю об AJAX, но я думаю, что изучение его для этой цели будет стоить того, и надеюсь, что это не займет слишком много времени, чтобы заставить его работать!

Jordan 18.03.2018 22:19

Другие вопросы по теме