我有一个文本框,我想阻止用户输入任何字母。他们需要能够输入数字。
文本框已经设置了onkeypressed事件,我正在添加逻辑,这样如果用户输入一个字母,则不显示任何内容。
无论我做什么(取消气泡,停止传播,返回假),信件仍然会在文本框中输入。我已经看过调试器了解这些仍然正在输入的信件,它就像是在事件发生之后发生的。
答案 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
}
从直接附加的事件处理程序(而不是attachEvent)返回false会取消该事件。
答案 1 :(得分:0)
实际上,一旦我回到测试onkeydown做同样的事情,当我编辑文本框中的内容时,它仍然会在最后添加非数字字符。
结束使用onkeyup,看起来足够远,它将消除文本框中的内容。
我真的在寻找ajax过滤的文本框功能,但是无法使用它,因为我们没有在应用程序中使用实际的ajax控件。