Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Можно ли при помощи input masked разрешить только цифры в поле input? (https://javascript.ru/forum/misc/80815-mozhno-li-pri-pomoshhi-input-masked-razreshit-tolko-cifry-v-pole-input.html)

Nice 06.08.2020 23:08

Можно ли при помощи input masked разрешить только цифры в поле input?
 
Вопрос пожалуй нубский, но я не могу нигде найти информации можно ли как-то при помощи masked input разрешить вводить только цифры в поле input? Если да, то как прописать это?

laimas 07.08.2020 00:55

В событии input удалять иное replace(/\D/, "")

voraa 07.08.2020 07:41

Лучше на keydown проверять
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</style>

</style>
</head>
<body>
<input type=text id=digonly>
</body>
<script>
document.getElementById('digonly').addEventListener('keydown',
	(ev) => {if( ev.key.length==1 && (ev.key<'0' || '9'< ev.key)) ev.preventDefault() })
</script>
</html>

Nice 07.08.2020 15:10

Спасибо, в итоге использовала такой вариант
jQuery(document).ready(function($) {
    $(document).on("change keyup input click", "input[type='tel']", function() {
        if(this.value.match(/[^0-9]/g)){
            this.value = this.value.replace(/[^0-9]/g, "");
        };
    });
});

laimas 07.08.2020 15:15

Цитата:

Сообщение от Nice
if(this.value.match(/[^0-9]/g)){

А разве без этого условия никак? И [^0-9] это и есть \D

Nice 08.08.2020 12:23

Цитата:

Сообщение от laimas (Сообщение 527695)
А разве без этого условия никак? И [^0-9] это и есть \D

не знаю, работает и на том спасибо :) мои познания в js слишком незначительны, чтобы прикапываться к таким моментам

laimas 08.08.2020 12:29

if(this.value.match(/[^0-9]/g)) - это вы прошерстили строку рег. выражением, и если обнаружено, то второй раз шерстите - this.value.replace(/[^0-9]/g, ""). А какой в этом смысл, если .replace(/[^0-9]/g, "") вырежет только если будут такие. Здесь условие просто лишнее. Ну и в наборе событий явный перебор, "change keyup input click" и все.


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