我觉得比较好的做法:
<form name=frm>
<textarea name=content onfocus="set(this.name,10)" onblur="clr()"></textarea>
</form>
<script>
var timer
function set(t,l){
if(document.frm(t).value.length>l)
document.frm(t).value=document.frm(t).value.substr(0,l)
timer=setTimeout("set('"+t+"',"+l+")",1)
}
function clr(){
clearTimeout(timer)
}
</script>

解决方案 »

  1.   

    <form name=frm>
    <textarea name=content onfocus="set(this.name,10)" onblur="clr()"></textarea>
    </form>
    <script>
    var timer
    function set(t,l){
    if(frm(t).value.length>l)
    frm(t).value=frm(t).value.substr(0,l)
    timer=setTimeout("set('"+t+"',"+l+")",1)
    }
    function clr(){
    clearTimeout(timer)
    }
    </script>
      

  2.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--//
    function textCounter(field, countfield, maxlimit) {
    // 定义函数,传入3个参数,分别为表单区的名字,表单域元素名,字符限制;
    if (field.value.length > maxlimit) 
    //如果元素区字符数大于最大字符数,按照最大字符数截断; 
    field.value = field.value.substring(0, maxlimit);
    else
    //在记数区文本框内显示剩余的字符数; 
    countfield.value = maxlimit - field.value.length;
    }
    //-->
    </SCRIPT>如下是表单区,在HTML的<body>...</body>之间:action志向任意指定的处理程序。<form name=myform action="">
    <textarea name=message wrap=physical cols=28 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,125);" onKeyUp="textCounter(this.form.message,this.form.remLen,125);">
    </textarea>
    <br>
    尚能输入 
    <input readonly type=text name=remLen size=4 maxlength=3 value="125">
    个字符</div>
    </form>
      

  3.   

    两位理解错小妹的意思了。
    是希望在往textarea中输入内容的时候就能够控制,不让用户一直输下去,例如他输到第100个字符的时候光标就不再移动了,就不能再输了
      

  4.   

    你试过我的代码了吗,二楼的,已经考虑了拷贝,拖曳等多种可能set(this.name,10)第二个参数是限制的字数
      

  5.   

    to fason(阿信):
    试过了,没问题。只是小妹还有些顾虑,除了拷贝、托拽,菜单项,是否还存在其他的可能性。
      

  6.   

    to net_lover(孟子E章):这位大哥的方法只能处理键盘输入以及用快捷键输入或粘贴的情况,如果字符的输入全部通过鼠标或输入板,就无法限制输入的字符数了。