Недавно наткнулся на интересную технику, позволяющую проверять правильность заполнения полей прямо в CSS.
С приходом HTML5 валидация данных на стороне клиента превратилась в довольно простую задачу, которую приятно решать. Всё благодаря атрибутам required, pattern, maxlength (maxlength доступен и в HTML4), а также благодаря новым типам полей ввода (например, email, url).
Новые возможности появились не только в HTML. С помощью CSS можно стилизовать разные состояния поля ввода: поле с неправильно введёнными данными и поле с правильно введёнными данными. Происходит это с помощью псевдоклассов :valid и :invalid.
Сразу рабочий пример:
В этом примере также демонстрируется возможность скрытия кнопки регистрации, пока все поля не будут заполнены правильно.
Поддержка браузерами — IE10+.