为textarea 增加 maxlength 屬性

本文介绍了几种限制HTML textarea输入字符数量的方法,包括使用onkeyup事件实时限制、定义maxlength属性配合JavaScript进行验证,以及通过禁用右键防止粘贴超过限制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果只是单纯地想限制 textarea 中的字數,可用:

<textarea onkeyup="this.value = this.value.slice(0, 10)"></textarea>

<textarea onkeyup="this.value = this.value.substring(0, 10)"></textarea>

 

也可以这样子:

首先在textarea 上定义一个 maxlength 属性:
<textarea rows="2" cols="20" maxlength="10" onkeydown="checklength(this);"></textarea>
然后添加这个方法就行了!
function checklength(obj) {
        var max = obj.maxlength;
        if(max == null || max == "" || max == undefined) {
            return;
        }
        if(obj.value.length > max) {
            alert("请不要超过最大长度:" + max);
            obj.value=obj.value.substring(0,(max-1));
            return;
        }
    }

 

还可以这样子:

      在textarea中输入内容后就判断是否超出了maxLength,如果超出就按照maxLength截取textare的值,如果用鼠标来拷贝粘贴就没法调用判断maxLength的方法,解决办法就是当textarea获取焦点时把鼠标右键失效,失去焦点时再恢复鼠标右键
      这个方法从功能上解决了textarea的maxLength问题,但还不是很完美,在输入超过maxLength的字符后光标会有闪烁,因为是截取回填,没有像input的maxLength那样真正不让输入

<script type="text/javascript">
  var textarea_maxlen = {
    isMax : function (){
      var textarea = document.getElementById("area");
      var max_length = textarea.maxLength;
      if(textarea.value.length > max_length){
        textarea.value = textarea.value.substring(0, max_length);
      }
    },
    
    disabledRightMouse : function (){
      document.oncontextmenu = function (){ return false; }
    },
    
    enabledRightMouse : function (){
      document.oncontextmenu = null;
    }


  };
</script>


<textarea id=
"area" maxLength="10"   onkeyup="textarea_maxlen.isMax()"
  onfocus=
"textarea_maxlen.disabledRightMouse()"  onblur="textarea_maxlen.enabledRightMouse()"
>
</textarea>

 

还是第一种方法方便有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值