仅允许输入文本上的数字,退格键和删除键

我在HTML5页面中有这个输入文本:

= 48 && event.charCode  

因为我需要一个只允许数字的输入文本,但我还需要删除一个数字。 当我按退格键或删除没有任何反应。

上面的代码只允许数字。 我怎样才能允许退格和删除?

keypress event仅提供字母代码的输出。 请改用keydown

按下某个键时会触发按键事件,该键通常会产生一个字符值(改为使用输入)。

  

我正在使用e.which因为keydown产生了它,但正如文档所说,已经弃用并且应该使用key (即使没有完全实现)

查看小提琴和按键文档

您不应该使用keypress事件,而是keyup或keydown事件,因为keypress事件是针对真实(可打印)字符的。 “keydown”在较低级别处理,因此它将捕获所有非打印键,如DEL和ENTER

这个jquery函数做到了

 $('#id').keypress(function(e) { var a = [46]; var k = e.which; console.log( k ); a.push(8); a.push(0); for (i = 48; i < 58; i++) a.push(i); if (!($.inArray(k,a)>=0)) e.preventDefault(); });