Каждый раз, когда пользователь вводит, значение проверяется с помощью регулярного выражения, я пытаюсь запретить пользователю вводить дальше в поле ввода, если регулярное выражение не соответствует
Используя событие keyup, предотвращение по умолчанию никогда не срабатывает и использование события нажатия клавиши пользователь не может ввести вообще, потому что в начале значение в поле ввода отображается как "" (ничего)
![on keyup val=](https://i.stack.imgur.com/xXYD1.png)
![on keypress val=](https://i.stack.imgur.com/W1gUd.png)
var discountRegex = /(^100([.]0{1,2})?)$|(^\d{1,2}([.]\d{1,2})?)$/
$("#" + (idOfElement)).on("keyup",function (e) {
var val=this.value
var k = e.keyCode
if(k==46 ||(k > 48 && k <97)){
console.log(k)
return discountRegex.test(val);
}
});
в приведенном выше коде idOfElement - это идентификатор, который я получаю в любом поле, на котором я фокусируюсь.