After some review, HTML 5 offers some answers to this question, although they are not widely supported.
In particular, input of a numeric type :
<input type="number" min="0" max="10" step="2" value="6">
Here is a demo . Powered by Chrome 6.0.472.51 (beta). It remains to be tested on Android / iPhone, but apparently it works.

(source: wearehugh.com )
source share