关于input、textarea输入字数限制、提醒 - 梦随清风

时间:2024-03-04 20:17:15

关于input、textarea输入字数限制、提醒

描述:即时监控文本框的值,并提示还可以输入多少字符

用到的事件:onpropertychange 这个事件是IE专用的,可以监控文本框的值是否改变。不过在IE9下这个事件只能监控增加的内容而不能监控删除的内容。

      oninput这个事件是专门针对非IE浏览器的,效果和onpropertychange 事一样的。

      onkeydown这个事件是为了解决onpropertychange 在IE9下存在的那个问题的。

大致代码如下:

      JQ代码:

        function codeLength(cls,maxNum,clsCnt){ 

        //cls文本框class

        //maxNums最大输入字数

        //clsCnt要显示可输入字数容器的class            

         var curCount=0;//当前字数
            var remainderCount;//剩下的字数
            var curCount=$(cls).val().length;//得到当前字数
            remainderCount=maxNum-curCount;//计算剩下的字数
           $(window).keydown(function(event){   //这个是判断删除的情况(针对IE9存在的那个情况)
             if(event.keyCode==116)
             {
                remainderCount=remainderCount+1;//如果删除则可输入字数加1
             }
           });
          if(remainderCount<=0){//判断如果已经达到最大输入字数,则让剩余字数一直为0,并截取文本框里面的内容(如只让输入10个,则在到达最大输入数以后再输入,就截取前10个)。
              remainderCount=0;
              str=$(cls).val().substring(0,maxNum);//截取
              $(cls).val(str);  //重新给文本框赋值  
          }
          $(clsCnt).text(remainderCount);//显示可输入字数
  }   

      HTML代码:

<div>
  <textarea class="textarea" onpropertychange="codeLength(\'.textarea\',10,\'.zz\');" oninput="codeLength(\'.textarea\',10,\'.zz\');" onkeydown="codeLength(\'.textarea\',10,\'.zz\')" ></textarea>
  你还可以输入<span class="zz">10</span>个字
 </div>