The hack is to use type="tel" instead of type="number". This solves the 2 main issues: It pulls up a number keypad on mobile devices It validates (and is not empty) with numbers or non-numbers as input.