Met de komst van CSS3 zijn er een aantal fijne pseudo-selectors zoals :valid en :invalid toegevoegd die gebruikt kunnen worden om formulier validatie eenvoudiger te maken.
Het probleem waar ik tegenaan loop is dat een selector input:invalid al wordt geëvalueerd bij het openen van de pagina, nog voordat iemand content heeft kunnen toevoegen. Dat is op z'n minst een beetje cru aangezien de bezoeker niet eens de kans krijgt om valide input te geven
Ik heb me door alle documentatie die ik over (pseudo) selectors ken doorgeworsteld, maar kan geen mogelijkheden vinden om hier omheen te werken. Iets in de richting van "input[!value]:invalid", maar dit voorbeeld mag (natuurlijk) niet.
Testcase:
Nu heb ik het opgelost met een smerig regeltje javascript, maar dat doe ik eigenlijk liever niet:
Gezien dit antwoord op StackOverflow schat ik m'n kansen laag in, maar wellicht is er nog iemand met suggesties?
Het probleem waar ik tegenaan loop is dat een selector input:invalid al wordt geëvalueerd bij het openen van de pagina, nog voordat iemand content heeft kunnen toevoegen. Dat is op z'n minst een beetje cru aangezien de bezoeker niet eens de kans krijgt om valide input te geven
Ik heb me door alle documentatie die ik over (pseudo) selectors ken doorgeworsteld, maar kan geen mogelijkheden vinden om hier omheen te werken. Iets in de richting van "input[!value]:invalid", maar dit voorbeeld mag (natuurlijk) niet.
Testcase:
HTML:
1
| <input type="text" value="" required /> |
Cascading Stylesheet:
1
2
3
4
5
6
| input:valid { border: green; } input:invalid { border: red; } |
Nu heb ik het opgelost met een smerig regeltje javascript, maar dat doe ik eigenlijk liever niet:
JavaScript:
1
2
3
| $('input').change(function() { $(this).attr('edited', 'edited'); }); |
Cascading Stylesheet:
1
2
3
| input[edited]:invalid { border: red; } |
Gezien dit antwoord op StackOverflow schat ik m'n kansen laag in, maar wellicht is er nog iemand met suggesties?