Псевдокласс :invalid

Рейтинг: 0Ответов: 1Опубликовано: 24.10.2014

Здравствуйте.

Сейчас сразу поля показывает красным, как сделать так, чтобы их показывало только при ошибочном вводе.

Вот пример: http://jsfiddle.net/gpbtwu99/

HTML

<form>
   <p>Адрес сайта</p>
   <p><input type="url" required></p>
   <p>Адрес электронной почты</p>
   <p><input type="email" required></p>
   <p><input type="submit" value="Отправить" /></p>
</form>

CSS

input:invalid {
 background: #fdd; /* Красный цвет фона */
}
input:valid {
 background: #dfd; /* Зеленый цвет фона */
}

Ответы

▲ 2

На чистом CSS это сделать невозможно. Можно сделать так:

input:focus:required:invalid {background-color: red; color: white;}

Тогда неправильно заполненные поля будут подсвечиваться только при получении полем фокуса.

Прочитайте вот эту статью:

Forward Thinking Form Validation