Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как запретить вводить что-либо кроме цифр в форму? (https://javascript.ru/forum/misc/70729-kak-zapretit-vvodit-chto-libo-krome-cifr-v-formu.html)

Walk 28.09.2017 16:35

Как запретить вводить что-либо кроме цифр в форму?
 
Пересмотрел кучу статей по валидации форм на JS, но нигде не нашел примера кода, который бы полностью блокировал ввод каких-либо символов кроме цифр в форму.

Буду благодарен за пример.

j0hnik 28.09.2017 17:39

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<input type="text">
	<script>
		document.querySelector('input').oninput = e => e.target.value = e.target.value.replace(/\D/g, '');
	</script>
</body>
</html>

j0hnik 28.09.2017 17:45

<input type="number">


вот самое простое решение

j0hnik 28.09.2017 17:48

<input type="text" oninput="this.value = this.value.replace(/\D/g, '')">


Встроенное в инпут

рони 28.09.2017 18:10

j0hnik,
лучше с проверкой , чтоб не перезаписывать, если нет \D или это лишнее?

j0hnik 28.09.2017 20:29

Рони, в целях производительности?

рони 28.09.2017 20:43

j0hnik,
да , и курсор как-то вернуть на место после замены, может нужно ... но наверно нет смысла, середину числа если неправильно начать вводить курсор скакнёт в конец и что делать с точкой, если потребуется? :)

j0hnik 28.09.2017 21:42

Рони, в производительности не выиграем ) а на счет точки, вопрос к автору, если нужна, добавить не проблема


Часовой пояс GMT +3, время: 18:29.