Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.08.2020, 23:08
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Можно ли при помощи input masked разрешить только цифры в поле input?
Вопрос пожалуй нубский, но я не могу нигде найти информации можно ли как-то при помощи masked input разрешить вводить только цифры в поле input? Если да, то как прописать это?
Ответить с цитированием
  #2 (permalink)  
Старый 07.08.2020, 00:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,649

В событии input удалять иное replace(/\D/, "")
Ответить с цитированием
  #3 (permalink)  
Старый 07.08.2020, 07:41
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 543

Лучше на 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>
Ответить с цитированием
  #4 (permalink)  
Старый 07.08.2020, 15:10
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Спасибо, в итоге использовала такой вариант
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, "");
        };
    });
});
Ответить с цитированием
  #5 (permalink)  
Старый 07.08.2020, 15:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,649

Сообщение от Nice
if(this.value.match(/[^0-9]/g)){
А разве без этого условия никак? И [^0-9] это и есть \D

Последний раз редактировалось laimas, 07.08.2020 в 15:21.
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2020, 12:23
Интересующийся
Отправить личное сообщение для Nice Посмотреть профиль Найти все сообщения от Nice
 
Регистрация: 13.10.2019
Сообщений: 15

Сообщение от laimas Посмотреть сообщение
А разве без этого условия никак? И [^0-9] это и есть \D
не знаю, работает и на том спасибо мои познания в js слишком незначительны, чтобы прикапываться к таким моментам
Ответить с цитированием
  #7 (permalink)  
Старый 08.08.2020, 12:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,649

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема совместного использования Masked Input и jQuery Validation spo jQuery 41 13.04.2016 16:10
в текстовое поле вводить только цифры от -10 до 10 Liza_rub jQuery 3 23.03.2016 10:21
Можно ли редактировать ф.с iPhone при помощи js? lonkonpetr Общие вопросы Javascript 3 16.03.2013 21:07
А что можно совершить при помощи xss vagabunt Общие вопросы Javascript 5 18.05.2012 07:12
можно ли при помощи jQuery открыть... andrew_F Общие вопросы Javascript 3 29.03.2012 11:37