每次用户输入,使用正则表达式检查值,如果正则表达式不匹配,我试图限制用户进一步输入到输入字段中
使用键盘输入事件,preventdefault永远不会触发,使用键盘输入事件,用户根本无法输入,因为在开始时,输入字段中的值显示为“”(无)
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是我关注的任何字段上的ID。
<input type="text">
$(document).ready(function(){
$("input").bind('keypress', function(e) {
var str = e.keyCode;
if (/(^100([.]0{1,2})?)$|(^\d{1,2}([.]\d{1,2})?)$/.test(str)) {
alert('Invalid')
e.preventDefault();
} else {
alert('Valid');
}
});
});
我更新了带有keydown示例的代码