为何4-3编程练习经常不灵
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <!DOCTYPE html> <html> <head> <meta charset= "UTF-8" > <title>输入文本</title> <style type= "text/css" > </style> </head> <body> <p class= "text" >字数限制在30字内,<span id= "tip" >您还可以输入<b id= "count" >30</b> 字</span></p> <textarea cols= "50" rows= "7" id= "text" ></textarea> <script type= "text/javascript" > // 获取文本框 var total=30; var text=document.getElementById( "text" ); var count=document.getElementById( "count" ); var tip=document.getElementById( "tip" ); // 绑定键盘事件 document.onkeypress= function (){ var len=text.value.length; if (len<=30){ var allow=total-len; count.innerHTML=allow; } else { var left=len-30; tip.innerHTML= "您已经超出" +left+ "字" ; } } </script> </body> </html> |
有时候第一次输入可以,刷新后就无法动了,在作业提交那里键盘输入没反应,代码是不是那里有问题???
还有个问题就是我删除字符的时候,到 “字数限制在30字内,您已经超出1字”,这个时候就卡住了,这是为何???
31
收起
正在回答
3回答
你好,因为超出之后,改变了html的结构,改变之后的html结构为: 如下:
html:<p>字数限制在30字内,<span id="tip">"你已超出"+"<b>"+num2+"</b>"+"字";</span></p>
这时已经没有count元素了,所以会一直停留在超出,建议:给可改成如下形式;祝学习愉快!
先声明:
var len=text.value.length; var num1=total-len; var num2=len-total;
if (len<=total) { tip.innerHTML="您还可以输入"+"<b>"+num1+"</b>"+"字"; } else{ tip.innerHTML="你已超出"+"<b>"+num2+"</b>"+"字"; console.log(num2); } }
希望可以帮到你!
相似问题
登录后可查看更多问答,登录/注册
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星