我在HTML5页面中有这个输入文本:
<input type="text" class="quantity"
onkeypress='return (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 8 || event.charCode == 46' required />
因为我需要一个只允许数字的输入文本,但我还需要删除一个数字。当我按退格键或删除没有任何反应时。
上面的代码只允许数字。我怎样才能允许退格和删除?
答案 0 :(得分:5)
keypress
event
仅提供字母代码输出。请改用keydown
。
按下某个键时会触发按键事件,该键通常会产生一个字符值(改为使用输入)。
<input type="text" class="quantity"
onkeydown='return (event.which >= 48 && event.which <= 57)
|| event.which == 8 || event.which == 46' required />
我正在使用e.which
,因为keydown
会产生它,但正如文档所说,which
已被弃用,而key
应该被使用(即使没有完全实现) )
答案 1 :(得分:0)
您不应该使用keypress事件,而是使用keyup或keydown事件,因为keypress事件是针对真实(可打印)字符的。 “keydown”在较低级别处理,因此它将捕获所有非打印键,如DEL和ENTER
答案 2 :(得分:0)
这个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();
});