:invalid лишь после попытки отправить форму?
Просто используйте input:focus:invalid и будут загоратся только поля в фокусе.
отловить события и при неудачной попытке лишь добавить класс

Вопрос в ответе, лучше пока не придумали.