为何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 星