我有一个文本框,用户只能输入数字数据.我在文本框的keyup上使用以下函数:
$('#ssn').keyup(function () { var val = this.value.replace(/\D/g, ''); this.value = val; });
我遇到的问题是当用户键入限制键时滞后,该字符在被空字符串替换之前显示片刻.按住某个键将在框中显示一串字符,直到该键被释放.有没有办法防止这种行为?我尝试了不同的键盘事件,如keydown或keypress,它们似乎没有表现得更好.这是一个问题的小提琴:https://jsfiddle.net/oxpy96g9/
将我的评论转换为答案
不是监听keyup
事件,而是监听事件,以便在值更改时触发input
事件,而不是在释放键时触发事件:
更新的示例
$('#numbers').on('input', function() { this.value = this.value.replace(/\D/g, ''); });