Каждый раз, когда пользователь вводит, значение проверяется с помощью регулярного выражения, я пытаюсь запретить пользователю вводить дальше в поле ввода, если регулярное выражение не соответствует
Используя событие keyup, предотвращение по умолчанию никогда не срабатывает и использование события нажатия клавиши пользователь не может ввести вообще, потому что в начале значение в поле ввода отображается как "" (ничего)
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 - это идентификатор, который я получаю в любом поле, на котором я фокусируюсь.