请老师帮忙看一下正确吗?还存在什么问题?

请老师帮忙看一下正确吗?还存在什么问题?

另:len=text.value.length这个是参照视频中老师写出来的,此处为什么一定要加value 还是没懂,text.length这样写不行吗?


<!DOCTYPE html>

<html>

    <head>

    <meta charset="UTF-8">

    <title>输入文本</title>

</head>

<body>

<p>字数限制在30字内,<span id="sp">您还可以输入<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 total=30;

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

//绑定键盘事件

document.onkeyup=function(){

//获取文本框长度(text文本框被取到text这个变量当中了,text.value为变量的值)

var len=text.value.length;

var allow=total-len;

if(allow<0){

//获取span标签对象

var sp=document.getElementById("sp");

//对超出的字数取绝对值

var all=Math.abs(allow);

//修改span标签内容

sp.innerHTML="您已超出"+all+"字";

}else{

//当allow>0时,直接修改b标签中的内容

count.innerHTML=allow;

}

}

</script>

</body>

</html>


正在回答

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

2回答

同学你好

  1. text获取的是输入框, text.value是获取到输入框的输入内容。

  2. 这里由于超出的时候,改变了html结构,超出之后,就没有b这个标签了,所以当超出之后,再删除输入的内容导致allow大于0的时候,无法对b标签赋值,建议:可以直接赋值给span标签。例:

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

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

祝学习愉快~~~~~~


  • 伽文Sama 提问者 #1
    老师帮我看下 这样写 可以吗? <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>输入文本</title> </head> <body> <p>字数限制在30字内,<span id="sp">您还可以输入<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 total=30; var count=document.getElementById("count"); //获取span标签对象 var sp=document.getElementById("sp"); //绑定键盘事件 document.onkeyup=function(){ //获取文本框长度(text文本框被取到text这个变量当中了,text.value为变量的值) var len=text.value.length; var allow=total-len; if(allow<0){ //对超出的字数取绝对值 var all=Math.abs(allow); //修改span标签内容 sp.innerHTML='您已超出<b id="count">'+all+'</b>字'; }else{ //当allow>0时,直接修改b标签中的内容 count.innerHTML=allow; } } </script> </body> </html>
    2019-04-01 11:48:37
  • 伽文Sama 提问者 #2
    超出的时候 我是对sp 赋值的呀,并没有对<b></b>标签赋值啊 麻烦老师再仔细帮我看一下 解答一和解答二。
    2019-04-01 12:02:55
  • 好帮手慕慕子 回复 提问者 伽文Sama #3
    同学你好,超出之后 ,改变了html结构,没有b这个标签了。 如果超出之后再删除输入的内容,allow再次小于0的时候没有b这个标签了,就无法实现对b标签的赋值操作了
    2019-04-01 12:20:31
好帮手慕慕子 2019-04-01 13:34:51

同学你好, 对于输入内容超出30字后,再删除到内容小于30,此时allow 大于0, 这里直接对b标签操作, 无法实现赋值, 建议修改:在else中也直接对span标签赋值

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

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

祝学习愉快~~~

  • 提问者 伽文Sama #1
    懂了,你要讲到点上嘛 老师,这个我先没想到。。。谢谢老师,辛苦了。
    2019-04-01 13:36:44
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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