在<input type="text">
字段中输入内容时,我想在屏幕上显示之前预先检查每个输入的值。例如。如果用户输入任何非数字值,则不会发生任何事情,只有当他输入数值时,该字段才会改变。
哪个是使用keydown()
,keyup()
的正确事件,还是有更好的事情?如何取消文本字段的当前更改而不必记住旧值并手动重置它?
答案 0 :(得分:3)
您可以绑定到keypress
事件,然后检查事件对象的which
属性所表示的字符。如果它不是数字,您可以使用preventDefault
来阻止将字符写入元素的默认行为:
$("#someInput").keypress(function(e) {
if(isNaN(String.fromCharCode(e.which))) {
e.preventDefault();
}
});