小编典典

textarea字符数限制

javascript

我希望能够限制文本区域中的字符数。我使用的方法在Google Chrome浏览器中效果很好,但是在Firefox中运行缓慢,在IE中不起作用。

Javascript:

function len(){
  t_v=textarea.value;
  if(t_v.length>180){
    long_post_container.innerHTML=long_post;
    post_button.className=post_button.className.replace('post_it_regular','post_it_disabled');
    post_button.disabled=true;
  }
  else{
    long_post_container.innerHTML="";
    post_button.className=post_button.className.replace('post_it_disabled','post_it_regular');
    post_button.disabled=false;
  }
  if(t_v.length>186){
        t_v=t_v.substring(0,186);
    }
}

HTML:

<textarea id="user_post_textarea" name="user_post_textarea" cols="28" rows="1"  onkeypress="len();" onkeyup="len();"></textarea>

正文元素底部的Javascript:

textarea=document.getElementById('user_post_textarea');

阅读 486

收藏
2020-05-01

共1个答案

小编典典

我发现了一个很好的解决方案,如果浏览器支持,则使用maxlength属性,并在不支持的浏览器中回退到不引人注意的javascript pollyfill。

HTML:

<textarea maxlength="50" id="text">This textarea has a character limit of 50.</textarea>

Javascript:

function maxLength(el) {    
    if (!('maxLength' in el)) {
        var max = el.attributes.maxLength.value;
        el.onkeypress = function () {
            if (this.value.length >= max) return false;
        };
    }
}

maxLength(document.getElementById("text"));

有没有这样的事情作为一个minlength在HTML5属性。对于下面的输入类型:numberrangedatedatetimedatetime-localmonthtime,和week(这还没有完全支持)使用minmax属性。

2020-05-01