0

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

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

无论我做什么(取消气泡、停止传播、返回 false),这封信仍然会输入到文本框中。我已经看到调试器检查了这些,但仍然在输入字母,就像它是在事件发生之后发生的。

4

2 回答 2

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 会取消该事件。

于 2013-06-25T22:59:44.213 回答
0

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

最终使用了 onkeyup,这似乎已经足够远了,它将清除文本框中的内容。

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

于 2013-06-26T02:07:09.323 回答