在web网页中,尤其是某些提交表单操作,需要验证文本框输入内容,本文利用文本框键盘事件和事件对象,对文本框只允许输入数字方法进行总结。

1.键盘事件

keydown ---->键盘按下事件   keydown的时候,我们所按的键并没有落入文本框

keyup -----    >键盘弹起事件  keyup的时候,我们所按的键已经落入了文本框,没有机会再取消

所以要达到这种效果,需要使用keydown事件,此时还有机会取消,即利用取消默认行为方法完成按键落入文本框的取消

2.取消默认行为

方法1:return false;

方法2:e.preventDefault();

上述两种方法,用第一个,整个事件结束,后续代码没办法执行,第二个方法,默认事件取消,但是后续代码还可以继续执行。

3.获取用户按下的键

如何判断用户按下的键是数字,首先要获取用户按下的键,事件对象可以给我们传递一些参数,可以通过事件对象,获取按下的内容

e.keyCode   通过在键盘按下0和9,获取数字范围的键盘码范围,只要判断按下的键的键盘码是不是在这个范围就可以判断按下的是不是数字。需要注意,键盘中,字母键上面的数字键和右边的小键盘数字键的keyCode并不相同,要注意规避。

详细代码如下:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文本框输入数字</title>
</head> <body>
<input type="text" id="txt" /> <script>
var txt = document.getElementById('txt'); // 键盘事件
// keydown 键盘按下的时候
// keyup 键盘弹起的时候
// keydown 和 keyup的区别 keydown的时候我们所按的键还没有落入文本框
// keyup键盘弹起的时候按的键已经落入文本框
txt.onkeydown = function(e) {
e = e || window.event;
// e.keyCode 键盘码
// console.log(e.keyCode);
// 判断当前用户按下的键是否是数字
// 如果e.keyCode 的值在 48-57 是数字
// 按下后退键 8,删除一个字符
if((e.keyCode <48 || e.keyCode>57) && e.keyCode != 8){
//return false;
e.preventDefault();
}
console.log('asdas')
}
</script>
</body>
</html>

最新文章

  1. sublime Text 3 安装emmet
  2. Kali2.0VMwareTools安装
  3. 基于java的设计模式入门(1)——为什么要学习设计模式
  4. WINDOWS命令和批处理
  5. Radar Installation(贪心)
  6. ie6双边距解决
  7. 在Linux中搭建一个FTP服务器
  8. Foxmail
  9. c语言命名规则 [转载]
  10. Java连接Azure SQL Database
  11. Java 输出通过 InetAddress 获得的 IP 地址数组
  12. cxf调用c#的webservice
  13. js正则匹配html内容
  14. 【原创】leetCodeOj --- Dungeon Game 解题报告
  15. hdu 5077 NAND(暴力打表)
  16. Hibernate框架注解
  17. “Failed to access IIS metabase”解决方法
  18. Kubernetes-基于flannel的集群网络
  19. Leetcode 226. Invert Binary Tree(easy)
  20. [编码实践]SpringBoot实战:利用Spring AOP实现操作日志审计管理

热门文章

  1. SharePoint Designer - Workflow
  2. BIEE入门(一)架构
  3. 如何为属性是disabled的表单绑定js事件
  4. Vim中 ctags 跳转直接跳到第一个匹配行的问题
  5. STL容器及算法题:删除奇数的QQ号
  6. 20165322 实验四 《Android程序设计》
  7. Python语言程序设计基础(5)—— 函数和代码复用
  8. TSP 遗传算法
  9. luogu P2124 奶牛美容
  10. 最短路算法——SPFA