TextArea,每行10行,每行35个字符

时间:2011-04-08 12:57:58

标签: javascript

我有一个包含许多元素的HTML页面。页面是可滚动的,这意味着页面中有一个滚动条。在页面下方,我有一个带有指定行和列属性的HTML textarea。 现在我想要一个简单的JavaScript解决方案,它可以帮助我在每次用户输入任何字符时验证以下几点:

  1. textarea中的行数不大于10
  2. 每行少于或等于35个字符
  3. 如果用户超过任何特定行的35个字符限制,那么只有当总行数不超过10时,第36个字符才会自动从下一行开始,否则它将显示错误弹出消息并停在那里。
  4. 用户应该可以修改任何行(可能是最后一行或任何中间行),仍然应该遵循以上所有3点。

2 个答案:

答案 0 :(得分:2)

我使用以下内容来限制textarea中允许的字符数量。 这不仅会计算它到达结尾时所修剪的字符数量,而且还会写出你剩下的字符数。

我认为你现在需要做的就是弄清楚如何添加一个新行(尝试像text + =“\ r \ n”;;)< - 不是100%肯定这个问题。

        function textCounter(txtfield, cntFld, maxlimit){
         var field = document.getElementById(txtfield);
         var countfield = document.getElementById(cntFld);

                if (field.value.length > maxlimit) // if too long...trim it!
                {
                        field.value = field.value.substring(0, maxlimit);
                }else { // otherwise, update 'characters left' counter
                        countfield.innerHTML = maxlimit - field.value.length;
                }
        }

答案 1 :(得分:0)

我也做了类似的情况:

  

textarea的最大长度= 1875;   行的最大长度= 75;   禁用Enter,因为超过75的倍数,SW会自动换行文本;

就是这样,带有onkeydown触发器:

function wrapTextArea(event,id,maxLineLenght){

    // delete and canc
    if((recuperaKeyCode(event)!=8) && (recuperaKeyCode(event)!=46))  {

        var field =  document.getElementById(id).value;
        var nextIndex = 0;
        for(var i=0; field.length>nextIndex; i++){
            nextIndex=maxLineLenght*(i+1)+i;
            if(field.length==nextIndex){
                if(field.charAt(nextIndex)!= "\n"){
                    field=field.substring(0, nextIndex)+"\n"+field.substring(nextIndex, field.lenght);
                }
            }
        }
        document.getElementById(id).value = field;
    } 
}

这就是我禁用Enter键的方式,其中key = 13:

function disableKey(event,key){

    if(recuperaKeyCode(event)==key){
        event.preventDefault();
    }
}