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