Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.11.2019, 13:11
tai tai вне форума
Аспирант
Отправить личное сообщение для tai Посмотреть профиль Найти все сообщения от tai
 
Регистрация: 16.01.2013
Сообщений: 98

Ввод чисел с 2-мя знаками после запятой
Добрый день!
Подскажите как сделать ввод (в текстовое поле) только чисел с 2-мя знаками после запятой. Написал такой код:

$('body').on('keydown', '.input-class', function(e){
        var input = $(this);
        var oldVal = input.val();
        var regex = new RegExp(/^\d*(\.\d{0,2})?$/, 'g');

        setTimeout(function(){
            var newVal = input.val();

            if(!regex.test(newVal)){
                input.val(oldVal);
            }
        }, 0);
    });


Но есть проблема. Если использовать setTimeout, то при попытке ввода недопустимых символов появляется "моргание". Т.е. символ ставится, но сразу же удаляется. Если же setTimeout не использовать, то проверка идет не сразу и можно ввести одну букву, 2-е точки или 3 цифры после точки.

Как сделать корректное ограничение ввода?

Последний раз редактировалось tai, 12.11.2019 в 13:13.
Ответить с цитированием
  #2 (permalink)  
Старый 12.11.2019, 13:27
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

tai, используй событие input

Событие keydown предназначено для отслеживания нажатия на клавишу, а не для отслеживания ввода.
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2019, 16:58
Аспирант
Отправить личное сообщение для Mikael86 Посмотреть профиль Найти все сообщения от Mikael86
 
Регистрация: 01.02.2018
Сообщений: 33

Плагин Numeral.js попробуй, мне помогло
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2019, 20:43
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

задача комплексная, а что будет если crtl+v )... и таких нюансов можно придумать достаточное кол-во...
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Округление до нужного количества знаков после запятой Shurik_ Общие вопросы Javascript 29 01.03.2020 03:35
Обрезание до двух знаков после запятой vladimircape Общие вопросы Javascript 4 16.10.2012 22:13
Помогите ограничить вывод знаков после запятой в скрипте djonA Общие вопросы Javascript 2 02.05.2012 01:41
Количество знаков после запятой stanlee jQuery 1 21.10.2010 01:47
Точность вычисления чисел с плавающей запятой Mihas2 Общие вопросы Javascript 2 19.01.2010 16:32