老师,麻烦看一下哪里出了问题。

老师,麻烦看一下哪里出了问题。


<!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">

var a=document.getElementById("text"),

    b=document.getElementsByTagName("b")[0],

    c=document.getElementsByTagName("span")[0];

a.onkeyup=function(){

    var len=a.value.length;

    var allow=30-len;

    if(allow<0){

        c.innerHTML="您已超出"+(len-30)+"字";

    }

    else{

         b.innerHTML=allow;

    }

}

    

</script>

</body>

</html>



以及什么时候用document.onkeyup 什么时候用a.onkeyup ????

正在回答 回答被采纳积分+1

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

2回答
山河远阔ZZ 2019-03-12 09:33:49

同学你好。

当回删的内容小于30个字符的时候,提示信息应该是“您还可以输入多少个字符”,而不是一直停留在您输入的字符超过1字符。

http://img1.sycdn.imooc.com//climg/5c870be200012de504080108.jpg

提示信息是在span标签显示的,所以改变的是span标签的内容(span标签存放在变量c中),可以直接写上allow变量,我在写的时候是为了让你能够看明白的一点,就用了计算方式哦。

同学可以测试一下哦。

祝学习愉快!

山河远阔ZZ 2019-03-11 19:00:42

同学你好,代码中有两个问题:

1、代码中,所有的符号都应该是英文状态下的哦,参考下图:

http://img1.sycdn.imooc.com//climg/5c863e6f0001706806840072.jpg

2、当输入的内容超出进行回删的时候 , 如下提示的信息不会再改变了,如下:

http://img1.sycdn.imooc.com//climg/5c863e880001c0a403280100.jpg

  • 回删的时候,span标签的内容改为“您还可以输入多少个字符,用规定的字符长度减去已经输入的字符长度。

http://img1.sycdn.imooc.com//climg/5c863eb30001c3a008790352.jpg

3、 如果是在这个文档中进行操作,就使用document.onkeyup,如果是在指定的元素话,使用a.onkeyup就可以了哦。

自己试一试,如果帮助到了你,欢迎采纳。

祝学习愉快!

  • 提问者 顾寻 #1
    老师 我还是没明白 b.innerHTML=allow;为什么不可以?
    2019-03-11 19:39:05
  • 提问者 顾寻 #2
    我操作了一下b.innerHTML是可以的 主要问题是我的一个括号没在英文状态下输入
    2019-03-11 19:44:43
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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