type=”text”のままで数値のみにするにはpattern属性を使用して数値のみにすることが出来ますが、この数値チェックはsubmitのタイミングなので入力時チェックはpatternではできません。 oninputを使う oninputを使用して入力イベントを全てチェックして解決することが出来ます。 この場合、type=”text”のままなのでmaxlengthも効かせることができます。 具体的には正規表現で数値以外が入力されたら空文字に置換してあげたら数値のみ入力する事が出来るようになります。 <input type="text" maxlength="5" oninput="value = value.replace(/[^0-9]+/i,'');" /> input type=”number”でmaxlengthを効かせる モダンブラウザでnumberのスピナーボタンを表示したい