如何用javascript控制textarea每行显示的字数,比如每行显示11个字,超过自动换行

解决方案 »

  1.   

    function CountText(source) {
            var currentValueLength;
            var maxLength;
            var objSource = document.getElementById(source);
            if (event.keyCode == 8 || event.keyCode ==13) {
    ////            alert(objSource.value.lastIndexOf("\n\n"));
    ////            alert(objSource.value.substring(objSource.value.length - 2));
    ////            alert(objSource.value.substring(objSource.value.length - 1));
                      if (event.keyCode == 13 && objSource.value.lastIndexOf("\n")>0) {
                    objSource.value = objSource.value.substring(0, objSource.value.lastIndexOf("\n") - 1);
                }
            }
              else {
                if (null != objSource) {
                    maxLength = 11;
                    currentValueLength = objSource.value.length;
                    var tempLength = objSource.value.length + 2;
                    if (tempLength > 1 && tempLength % 13 == 0) {
                        //alert(objSource.value);
                        objSource.value += "\n";
                        objSource.value = objSource.value.substring(0, objSource.value.lastIndexOf("\n") - 1);
                    }
                }
            }
        }写了这么个,输入的时候会自己换行,但是,输入11个数,按enter的时候中间会空一行
      

  2.   

    是不是你回车 本来就换行,然后你程序里面当长度=11的时候 又加了\n 所以就换了二次,
    你应该就去keyup事件 判断文本框输入的长度,不要判断keycode =8还是13 ,就用keyup 事件监听,长度到了11 就加个\n
      

  3.   

    那输入enter的时候怎么办呢?