$("#re").keyup(function(e){
        checkMaxLength(e);    }) .keydown(function(e){
           checkMaxLength(e);
        })
    function checkMaxLength(e) {
        /*不能超过指定字符*/
      window.COUNT=100;
        var name= $.trim($("#re").val());
        var strLen=0;
        for(var i=0;i<name.length;i++){
            if(name.charCodeAt(i)<27||name.charCodeAt(i)>126){ //中文和中文字符
                strLen+=2;
            }
            else{
                strLen ++;
            }
        }
        if(strLen<=COUNT){
            $("#count").text(COUNT-strLen);
        }
        else{
            $("#count").text("0");
            for(var j= 0,len=name.length;j<len;j++){
                $("#re").val(name.substr(0,j));
            }        }    }
上面是我写的限制textarea中,指定总数,并检测中英文字节,现在当超过指定能输入的字符总数后,回退删除,并输入中文就不可以输入了,但输入英文没有任何问题,求指导,谢谢

解决方案 »

  1.   

    <script type="text/javascript" src="http://www.coding123.net/js/jquery.js"></script><div id="count"></div>
    <textarea id="re" cols="50" rows="5"></textarea>
      <script language="javascript">
      $(function(){
     $("#re").keyup(function(e){
            checkMaxLength(e);    }) .keydown(function(e){
               checkMaxLength(e);
            })})
            /*不能超过指定字符*/
          window.COUNT=10;
        function checkMaxLength(e) {
            var name= $.trim($("#re").val());
            var strLen=0;
            for(var i=0;i<name.length;i++){
                if(name.charCodeAt(i)<27||name.charCodeAt(i)>126){ //中文和中文字符
                    strLen+=2;
                }
                else{
                    strLen ++;
                }
            }
            if(strLen<=COUNT){
                $("#count").text(COUNT-strLen);
            }
            else{
                $("#count").text("0");
    //你这里是干嘛??直接执行就好了
    //逻辑也有问题,怎么使用输入的总长度,而应该是限制的总长度
    $("#re").val(name.substr(0,window.COUNT));
                /*for(var j= 0,len=name.length;j<len;j++){
                    $("#re").val(name.substr(0,j));
                }*/        }    }</script>