я думаю это то что нужно:
<input type="number" onChange={e => {
let value = e.target.value
if (value.length > 12) value = value.slice(0, 12)}} />
P.S.максимальное число вводимых цифр-12
maxlength и max работают совершенно по разному, max ограничивает максимальное число цифры, но никак не число вводимых цифр, то есть maxlength для number не работает. Или так
<form method="post">
<label for="myNumber">My Number:</label>
<input type="number" maxlength="9" required
oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" >
<br><br>
<input type="submit" value="Submit">
</form>