老师帮忙看一下

来源:4-5 编程练习

qq_慕尼黑1376657

2019-06-02 22:48:23

<!DOCTYPE html>

<html>

<head lang="en">

        <meta charset="UTF-8">

        <title>输入文本</title>

    </head>

    <body>

        <p>字数限制在30字内,<span id="high">您还可以输入<b id="count">30</b> 字</span></p>

        <textarea cols="50"  rows="7"  id="text"></textarea>

        <script type="text/javascript">

            //补充代码

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

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

count.style.fontWeight='bold';          

            var total=30;

text.onkeyup=function(){

var len=text.value.length;

var allow=total-len;

if(allow>=0){

count.innerHTML=allow;

}else if(allow<0){

var high=document.getElementById('high');

var exceed=Math.abs(allow);

high.innerHTML='您已超出'+exceed+'字';

}

}

        </script>

    </body>

</html>

请问老师,为什么把len和allow写在键盘事件外面不可以呢

写回答

1回答

好帮手慕慕子

2019-06-03

同学你好,请问你是指直接将下面这两句代码放在键盘事件外吗?如果是指这里的话, 那么是因为每一次输入的时候输入框中的值都会发生改变, 如果将这两句代码放在外边, 那么在输入框的内容发生改变的时候, len和allow值不会发生改变了

var len = text.value.length;
var allow = total - len;

如果同学指的不是这里,建议: 可以详细的描述一下指的是哪里, 再次提问,我们会继续为你解答的

另, 经过测试 , 当输入内容超出 , 然后在删除内容 , 内容小于限制个数时  ,提示信息没有改变

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

因为在超出的时候,改变了html的结构,超出之后,就没有b这个元素了,建议:可以直接给span赋值,另。 可在键盘事件外获取span标签对象

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

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

0

0 学习 · 40143 问题

查看课程