Хотя это не приведет к принудительному вводу пользователем только цифр, вы можете рассмотреть возможность использования атрибута pattern
для использования некоторого встроенного поведения.Если вы введете нечисловые символы, цвет текста станет красным:
input:invalid {
color: red;
}
<input type="text" pattern="[0-9]+"/>
Тогда мы можем начать смотреть на API проверки ограничений :
API проверки ограничений позволяет проверитьзначения, которые пользователи вводили в элементы управления формой, перед отправкой значений на сервер.
Если вы набираете нечисловые символы и пытаетесь отправить форму, вы должны увидеть встроенную подсказку, отображающуюПользовательское сообщение об ошибке:
const input = document.querySelector('input');
input.addEventListener('invalid', () => {
if (input.validity.patternMismatch) {
input.setCustomValidity('Numbers only please!!');
}
});
input:invalid {
color: red;
}
<form>
<input type="text" pattern="[0-9]+"/>
<button type="submit">submit</button>
</form>