4-2 jQuery键盘事件之keypress()事件
本节编程练习不计算学习进度,请电脑登录imooc.com操作

jQuery键盘事件之keypress()事件

在input元素上绑定keydown事件会发现一个问题:

每次获取的内容都是之前输入的,当前输入的获取不到

keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本

当浏览器捕获键盘输入时,还提供了一个keypress的响应,这个跟keydown是非常相似,这里使用请参考keydown这一节,具体说说不同点

keypress事件与keydown和keyup的主要区别

总而言之,

KeyPress主要用来接收字母、数字等ANSI字符,而 KeyDown 和 KeyUP 事件过程可以处理任何不被 KeyPress 识别的击键。诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。

任务

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  6. <title></title>
  7. <style>
  8. .left div,
  9. .right div {
  10. width: 500px;
  11. height: 50px;
  12. padding: 5px;
  13. margin: 5px;
  14. float: left;
  15. border: 1px solid #ccc;
  16. }
  17.  
  18. .left div {
  19. background: #bbffaa;
  20. }
  21. em{
  22. font-weight: 900;
  23. color: red;
  24. }
  25. </style>
  26. <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js"></script>
  27. </head>
  28.  
  29. <body>
  30. <h2>keypress()事件</h2>
  31. <div class="left">
  32. <div class="aaron">监听keypress输入:
  33. <input class="target1" type="text" value="" /><br />
  34. 输入中文测试,无法显示:<em></em>
  35. </div>
  36. </div>
  37.  
  38. <script type="text/javascript">
  39. //监听键盘按键
  40. //获取输入的值
  41. $('.target1').keypress(function(e) {
  42. $("em").text(e.target.value)
  43. });
  44.  
  45.  
  46.  
  47. </script>
  48.  
  49. </body>
  50.  
  51. </html>
  52.  
下一节