为什么只能用onkeyup事件?

为什么只能用onkeyup事件?

在老师讲的这个案例中,为什么只能用onkeyup事件呢?我尝试换成onkeydown和onkeypress都没有效果。但是在我的理解中,这三个事件的区别是:一个是按下触发,一个是松开触发,一个是按下松开的整个过程。这样讲其他两个应该也可以的呀

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

因为事件不一样,按下时会比松开时少计算一个字符,所以最好用松开事件(就是onkeyup)!

  • 栀子_ 提问者 #1
    非常感谢!
    2017-02-19 21:11:39
  • 栀子_ 提问者 #2
    可是onkeypress不是按下和松开整个过程都计算了吗
    2017-02-19 21:13:16
提问者 栀子_ 2017-02-19 10:21:17

<!DOCTYPE html>

<html>

    <head>

   <meta charset="UTF-8">

   <title>输入文本</title>

</head>

<body>

<div>

  <p>您还可以输入<span><em id="count">30</em>/30</span></p>

  <div>

        <textarea name="" id="text" cols="70" rows="4"></textarea>

  </div>

  <script type="text/javascript">

      var text=document.getElementById("text");

      var total=30;

      var count=document.getElementById("count");

      document.onkeydown=function(){

          var len=text.value.length;

          var allow=total-len;

          count.innerHTML=allow;

      }

  </script>


</body>

</html>


嘘_别说话 2017-02-19 08:32:57

我试了是可以的呀,你可以把你写的demo发出来,可以帮你看一下~

  • 提问者 栀子_ #1
    我试了下,又可以了,可能昨天电脑出问题了。不过,为什么onkeydown和onkeypress的计数总是比onkeyup少一位呢?
    2017-02-19 10:22:29
  • 提问者 栀子_ #2
    代码贴在另外一个答案里了
    2017-02-19 10:23:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师