Ich habe kürzlich festgestellt, dass die :invalid
Pseudoklasse für required
Formularelemente gilt, sobald die Seite geladen wird. Wenn Sie beispielsweise diesen Code haben:
<style>
input:invalid { background-color: pink; color: white; }
input:valid { background-color: white; color: black; }
</style>
…
<input name="foo" required />
Dann wird Ihre Seite mit einem leeren rosa Eingabeelement geladen. Die in HTML5 integrierte Validierung ist großartig, aber ich glaube nicht, dass die meisten Benutzer erwarten, dass das Formular validiert wird, bevor sie überhaupt die Möglichkeit hatten, Werte einzugeben. Gibt es eine Möglichkeit, die Anwendung der Pseudoklasse bis zum ersten Ereignis zu verzögern, das dieses Element betrifft (Formular senden, verwischen, ändern, was auch immer angemessen ist)? Ist dies ohne JavaScript möglich?
makeDirty
Dirty-Klasse sollte nicht umgeschaltet werden, sie sollte bei zukünftigen (blau, ungültig, gültig) Ereignisfunktionen bleiben. MakeDirty (e) {if (! E.target .classList.contains ('schmutzig')) e.target.classList.add ('schmutzig'); }