Ответ 1
Альтернативой предоставленным ответам является мониторинг нажатия клавиши во время ввода. Мне лично нравится оставить type="number"
в качестве атрибута. Здесь JSFiddle
<form action="#" method="post">
Numbers: <input name="num"
type="number"
min="1"
step="1"
onkeypress="return event.charCode >= 48 && event.charCode <= 57"
title="Numbers only">
<input type="submit">
</form>