Недавно я обнаружил, что псевдокласс класса :invalid
применяется к элементам формы required
, как только загружается страница. Например, если у вас есть этот код:
<style>
input:invalid { background-color: pink; color: white; }
input:valid { background-color: white; color: black; }
</style>
…
<input name="foo" required />
Затем ваша страница будет загружена с пустым розовым элементом ввода. Валидация, встроенная в HTML5, отличная, но я не думаю, что большинство пользователей ожидают, что форма будет проверена, прежде чем у них будет возможность ввести какие-либо значения вообще. Есть ли способ отложить применение псевдокласса до первого события, влияющего на этот элемент (форма отправки, размытия, изменения, независимо от того, что подходит)? Можно ли сделать это без JavaScript?