Onkeypress取消事件javascript

时间:2013-06-25 22:38:12

标签: onkeypress

我有一个文本框,我想阻止用户输入任何字母。他们需要能够输入数字。

文本框已经设置了onkeypressed事件,我正在添加逻辑,这样如果用户输入一个字母,则不显示任何内容。

无论我做什么(取消气泡,停止传播,返回假),信件仍然会在文本框中输入。我已经看过调试器了解这些仍然正在输入的信件,它就像是在事件发生之后发生的。

2 个答案:

答案 0 :(得分:1)

您正在寻找的事件处理程序钩是onkeydown

yourInput.onkeydown = function(e){
    var char = String.fromCharCode(e.which); // get the char
    return /[0-9]/.test(char);  //assert it's a number
}

working demo

从直接附加的事件处理程序(而不是attachEvent)返回false会取消该事件。

答案 1 :(得分:0)

实际上,一旦我回到测试onkeydown做同样的事情,当我编辑文本框中的内容时,它仍然会在最后添加非数字字符。

结束使用onkeyup,看起来足够远,它将消除文本框中的内容。

我真的在寻找ajax过滤的文本框功能,但是无法使用它,因为我们没有在应用程序中使用实际的ajax控件。