JQuery取消输入的文本

时间:2012-01-14 15:24:21

标签: javascript jquery html browser dom-events

<input type="text">字段中输入内容时,我想在屏幕上显示之前预先检查每个输入的值。例如。如果用户输入任何非数字值,则不会发生任何事情,只有当他输入数值时,该字段才会改变。

哪个是使用keydown()keyup()的正确事件,还是有更好的事情?如何取消文本字段的当前更改而不必记住旧值并手动重置它?

1 个答案:

答案 0 :(得分:3)

您可以绑定到keypress事件,然后检查事件对象的which属性所表示的字符。如果它不是数字,您可以使用preventDefault来阻止将字符写入元素的默认行为:

$("#someInput").keypress(function(e) {
    if(isNaN(String.fromCharCode(e.which))) {
        e.preventDefault();
    }
});

这是working example