<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META Http-Equiv="Content-Type" Content="text/html; charset=gb2312">
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
//*************************************
//函数功能:限制文本域的输入
//输入:当前表单域,长度限制 field,maxlimit 
//输出:
//作者:  xf
//创建日期: 2003-09-17
//修改:
//*************************************
function textCounter(strtitle,field,  maxlimit) { 
// 定义函数,传入3个参数,分别为表单区的名字字符限制;
if (field.value.length >= maxlimit) 
{

//如果元素区字符数大于最大字符数,弹出提示;
var  mss=strtitle+"最多只能输入"+maxlimit+"个字符!请调整输入!";
field.value=field.value.substring(0,maxlimit);
alert( mss); 
field.focus();
return false;
}
} //-->
</SCRIPT>
<BODY>
<FORM METHOD=POST ACTION="">
<textarea class="input1" cols="64" name="strXCGS_Jyfw" rows="4" onKeyUp="textCounter('经营范围',this.form.strXCGS_Jyfw,5);"></textarea>
</FORM>
</BODY>
</HTML>
<BR>
我的这个函数不能限制有多少行的输入,但你可以根据一行可以最长的字符数自己算一下要控制多少个字

解决方案 »

  1.   

    <script>
    function check(str)
    {
     if(event.keyCode==13)
       {
    //当是回车时匹配字符串和回车由5次到0次做case判断
    //这里可能需要做if判断
        str=str.match(/(.*\s){0,5}/)
    //    alert(str);
       }
     else
       {
    //当是其他字符时匹配由0个字符到最大字符数
        str=str.match(/.{0,20}/);
    //    if(length(str)=0)str="";
        }
        document.all.test.value=str;
    }
    </script>
    <textarea name=test onkeyup="check(this.value)" cols=40 rows=5></textarea>
      

  2.   

    to:myvicy
    还是有问题啊。不过比我的要强啊。
    问题是:
    我限制在0-100之间,也就是正好在你给的大小下可以输入5行汉字。但当我先输入5行汉字后,再回车就有问题了。哈哈,看来还要调整一下啊。正则我是不会了,也不知道好学不。
      

  3.   

    <textarea rows=6 cols=20 onkeypress="check(this);"></textarea>
    <script>
    function check(obj){
    var o=obj.createTextRange().getClientRects();
    if(o.length==5&&event.keyCode==13)
      event.returnValue=false;
    if(o.length>5)
    event.returnValue=false;
    }
    </script>