Добрый день!
Подскажите как сделать ввод (в текстовое поле) только чисел с 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 цифры после точки.
Как сделать корректное ограничение ввода?