为什么删除字体和中文字体都对数值无效

为什么删除字体和中文字体都对数值无效

<!DOCTYPE html>

<html>

    <head>

    <meta charset="UTF-8">

    <title>输入文本</title>

</head>

<body>

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

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

<script type="text/javascript">

//补充代码

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

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

var allowtext=allow.innerHTML;

var total=0;

document.write(allowtext);

document.onkeypress=function(){

    total=text.value.length;

    allowtext=allowtext-total;

    allow.innerHTML=allowtext;

}

</script>

</body>

</html>

如题,都是innerHTML读取的数值

为什么中文字体无效,还有我删除了之后减去的数值没回复啊

正在回答

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

2回答

同学你好,可以参考下方:

1、onkeypress不能监听键盘的回删键,所以在删除时,提示值没有改变。中文也不能正常的监听。建议:使用onkeyup事件

2、提示文字中的数字是不正确的,执行过程如下:

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

建议:同学可以尝试着理解下老师给出的方法。祝学习愉快~

好帮手慕言 2020-03-25 15:25:46

同学你好,实现本编程题,要使用onkeyup事件,具体的修改可以参考下方:

http://img1.sycdn.imooc.com//climg/5e7b075e09ace57811050587.jpg代码:

<script type="text/javascript">
    //补充代码

    var text = document.getElementById("text");
    var allow = document.getElementById("allow");
    // 获取span
    var span  = document.getElementById("span")
    // 一共可以输入多少字
    var allowtext = 30;
    var total = 0;
    document.onkeyup = function () {
      // 输入框中的字数
      total = text.value.length;
      // 如果输入框中的字数小于30
      if (total < 30) {
        // 改变提示文字
        span.innerHTML = "您还可以输入" + "<b>" + (allowtext - total) + "</b>" + "字";
      } else {
        span.innerHTML = "您已超出" + "<b>" + (total - allowtext) + "</b>" + "字";
      }
    }
  </script>

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕雪9296518 #1
    老师,这样直接给答案一点帮助也没有,我是想知道为什么我打中文的时候不算是字符长度?为什么会这样
    2020-03-25 16:45:20
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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