【问题标题】:JQuery cancel entered textJQuery 取消输入的文本
【发布时间】:2012-01-14 15:24:20
【问题描述】:
在输入<input type="text"> 字段时,我想在每个输入的值出现在屏幕上之前预先检查它。例如。如果用户输入任何非数值,则不会发生任何事情,只有当他输入数值时,该字段才会改变。
哪个是使用keydown()、keyup() 的正确事件,还是有更好的方法?如何取消文本字段的当前更改而不必记住旧值并手动重置它?
【问题讨论】:
标签:
javascript
jquery
html
browser
dom-events
【解决方案1】:
您可以绑定到keypress 事件,然后检查由事件对象的which 属性表示的字符。如果不是数字,您可以使用preventDefault 来防止将字符写入元素的默认行为:
$("#someInput").keypress(function(e) {
if(isNaN(String.fromCharCode(e.which))) {
e.preventDefault();
}
});
这是working example。