我将以下内容作为某些代码的一部分 - 您可以在http://jsfiddle.net/73c3X/1/
看到它 if (txt.val().length >= 10 && (event.keyCode != 46 || event.keyCode != 8 || event.keyCode != 9)) {
alert(txt.val().length + "keycode = " + event.keyCode);
event.preventDefault();
$('.onlynumbers').text("10 digits in mobile").show(200);
}
这个想法是防止有人输入超过10位的数字并显示信息。
我原本期待这行
if(txt.val().length >= 10 && (event.keyCode != 46 || event.keyCode != 8 || event.keyCode != 9))
允许使用制表符,退格键或删除键,但正如您在小提琴中看到的那样,它们会通过if语句并触发警报 - 这甚至会显示长度= 10且keyCode = 9
对我来说看起来很好,显然不是。我错过了什么,或者这是一个DOH!时刻?
答案 0 :(得分:1)
应该是
if(txt.val().length >= 10 && (event.keyCode != 46 && event.keyCode != 8 && event.keyCode != 9))
在代码的开头,因为你想要捕获所有但是那三个。此外,不要忘记箭头,因为它们可用于移动和编辑数字。
答案 1 :(得分:0)
你应该这样做:
if (txt.val().length >= 10 && event.keyCode != 46 && event.keyCode != 8 && event.keyCode != 9) {