HTML5 like input, but better