Fancy Forms: HTML5 + CSS3 – JS
by Richard Bradshaw
Forms in HTML have typically been pretty boring – input boxes and buttons with all validation performed by javascript. With the new HTML5 Forms module things have become a little more useful. As of May 2010, only bleeding edge browsers support this, Webkit Nightlies, Chrome Dev Channel builds and Opera.
The HTML5 forms module started out as Web Forms 2.0 before moving into HTML5. The focus has been to increase the number of input types and to allow validation of input to happen in the browser, rather than in javascript.
In this demo I’ve set up a simple form with a number of different fields, the code should be pretty self explanatory, but there are a couple of new features of interest.
- New input types – email, url, number and range
- New pseudo classes – :valid, :invalid:, :required
- You can’t submit the form until all fields are counted as valid by the browser
I’ve also added a few CSS3 touches to make things a little nicer to look at:
- CSS transitions and transformations
- :not pseudo class
Things to try
- Submit the form without completing it
- Notice that the browser checks whether the input is valid
- The iPhone offers different keyboards depending on the input type
- Check what it looks like in older browsers (fine, but no validation)
The code is commented where interesting, so take a look at the source.
Comments
That is nice, practical, useful stuff, not just flash. Thanks for highlighting it.
Though “even num < 10″ accepts 10. Shouldn’t it accept only up to 8? Smaller than 10, not equal too?
Ah, that’s me labelling it wrong, rather than the logic not working. I’ll fix it.
You can’t inline your formdemo into this post, can you?
I’ve been meaning to replace the whole blog with a series of flat files instead to enable easier demos. I like the idea that it’s easy for people to view the source without any distractions. On my list of things to do!
[...] HTML5 Form Demo by Richard Bradshaw (originally from his Fancy Forms: HTML5 + CSS3 – JS [...]
[...] HTML5 Form Demo by Richard Bradshaw (originally from his Fancy Forms: HTML5 + CSS3 – JS [...]
please close Internet explore 6.0 for always