Ввод чисел с 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, используй событие input
Событие keydown предназначено для отслеживания нажатия на клавишу, а не для отслеживания ввода. |
Плагин Numeral.js попробуй, мне помогло
|
задача комплексная, а что будет если crtl+v )... и таких нюансов можно придумать достаточное кол-во...
|
Часовой пояс GMT +3, время: 23:13. |