JQuery取消输入的文本

JQuery cancel entered text

本文关键字:文本 输入 取消 JQuery      更新时间:2023-09-26

<input type="text">字段中键入时,我希望在输入的每个值出现在屏幕上之前进行预检查。例如,如果用户输入任何非数值,则不会发生任何事情,并且只有当用户输入数值时,字段才会更改。

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

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

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

下面是一个工作示例。