使用键盘事件

来源:4-5 编程练习

迷失的小麦

2019-12-04 15:50:56

<!DOCTYPE html>
<html>
    <head>
    <meta charset="UTF-8">
    <title>输入文本</title>
</head>
<body>
<p>字数限制在30字内,<span>您还可以输入<b>30</b>个字</span></p>
<textarea cols="50"  rows="7"  id="text"></textarea>
<script type="text/javascript">
/*(1)在文本域中输入文本,文本域的字数限制在30个字以内。
  (2)每当用户输入一个字,就要提示还能输入多少个字
  (3)当用户输入的文本超出了30个字时,要提示用户超出了多少字*/
var text=document.getElementById("text");
var b=document.getElementsByTagName("b")[0];
var span=document.getElementsByTagName("span")[0];
var shuzi=30;
text.onkeyup=function(){
var i=text.value.length;
var shengyu=shuzi-i;
if(shengyu>=0){
   b.innerHTML=shengyu;
   }else{
   span.innerHTML="超出了<b>"+(shuzi+Math.abs(shengyu))+"</b>个字";
   span.style.color="red";
   }
}
</script>
</body>
</html>

在使用键盘事件的时候,分别在什么情况下使用?如本案例,为什么用onkeyup?我的代码错误在哪里,效果没出来?

写回答

1回答

好帮手慕星星

2019-12-04

同学你好,问题解答如下:

1、你的代码在控制台(F12打开)中有报错:24行问题

http://img.mukewang.com/climg/5de773a2093d312219200179.jpg

http://img.mukewang.com/climg/5de773ca0988927b05850079.jpg

修改方式已经在另一个相似问题中进行了回复,可以查看一下:

https://class.imooc.com/course/qadetail/175727

2、onkeyup 事件会在键盘按键被松开时触发,这样才可以获取到输入的内容。如果改为onkeydown或者onkeypress事件获取不到当前输入的内容,获取的是输入之前的内容,也就是内容填充在这两个事件后面,所以通常情况下用onkeyup事件较多。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 40143 问题

查看课程