JS控制多行文本框的行数和最多输入字符数解决思路

JS控制多行文本框的行数和最多输入字符数
ASP.NET MSDN说明
如何:为 TextBox Web 服务器控件指定多行输入

更新:2007 年 11 月

多行 TextBox 控件允许用户在支持自动换行和水平及垂直滚动的框中键入信息。

创建多行 TextBox Web 服务器控件
将 TextBox 控件的 TextMode 属性设置为 Multiline。在代码中,使用 TextMode 枚举设置文本模式。

通过设置下列属性来设置控件的大小: 

将 Width 设置为以像素为单位的值,或将 Columns 设置为要显示的字符数。

将 Height 设置为以像素为单位的值,或将 Rows 设置为行数。

说明: 
Height 和 Width 属性不适用于不支持级联样式表 (CSS) 样式的浏览器。
 

设置这些属性并不会限制用户可以输入的字符数或行数,而只是限制了所显示的字符数或行数。控件将始终显示垂直滚动条。Height 和 Width 优先于 Rows 和 Columns。

说明: 
默认情况下,多行 TextBox 控件将包含一个垂直滚动条。若要隐藏该滚动条,请包括样式属性 overflow: hidden。例如,在 HTML 视图中,控件的声明性语法会是下面这样:
 
复制代码 
<asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 56px; OVERFLOW: hidden; POSITION: absolute; TOP: 72px" runat="server" TextMode="MultiLine"></asp:TextBox>
通过设置控件的 Wrap 属性来设置自动换行行为。如果设置为 true,文本将会自动换行(不会嵌入回车/换行符)。如果设置为 false,则文本不换行,用户必须按 Enter 来开始新行,这将嵌入回车/换行符。将 Wrap 属性设置为 false 将使控件显示水平滚动条。

说明: 
MaxLength 属性在多行文本框中不起作用。
 -------------------------------------------------------------------
这个是从网上找到的,大部分就这样的
<script type="text/javascript">
  function CheckLength(obj,maxLength,lines)
  {
  if(obj.value.length > maxLength)
  {
  alert('请确保文本框输入的内容最大长度为'+maxLength+'个字符,超出部分将自动截断!');
  obj.value=obj.value.substring(0,maxLength-1);
  }
  var arr = obj.value.split("\n");
  if(arr.length > lines)
  {
  var value="";
  alert('请确保文本框输入的内容最大行数为'+lines+',超出部分将自动截断!');
  for(loop=0;loop<lines;loop++)
  {
  if(loop != lines -1)
  value=value + arr[loop] + "\n";
  else
  value = value + arr[loop];
  }
  obj.value = value;
  }
  }


<asp:TextBox ID="txtFirProblem" runat="server" TextMode="MultiLine" Height="230px" Rows="8"></asp:TextBox><br />

  CS代码如下:
 this.txtFirProblem.Attributes.Add("onKeyDown", "CheckLength(this,318,8);");
 this.txtFirProblem.Attributes.Add("onKeyUp", "CheckLength(this,318,8);");
这个考虑不到 复制粘贴 情况  
请问csdn的高手们,谁有完美版本的哦?
--------------------------------------------------
另一个方法
<textarea id=txt style="width: 300; height: 100"></textarea><br>  
  <input type=button value="最大只留三行" onclick="mmm(3)">  
  <SCRIPT LANGUAGE="JavaScript">  
  function mmm(n)  
  {  
  var s = document.all.txt.value;  
  var a = s.match(/[^\n]+(\n|$)/g);  
  var result = "";  
  if(a)  
  {  
  for(var i=0; i<n; i++) result += a[i];  
  }  
  document.all.txt.value = result;  
  }  
  </SCRIPT>
这个只能匹配硬回车哦。。。如果是自动回行的就不行了
---------------------------------------
大家帮帮我吧,不好发的话 ,我邮箱
tww382233701@126.com 收到给分啊。
或者有更好的方法的,谢谢大家了



------解决方案--------------------
http://www.css88.com/demo/textarea-num-chack/textarea-num-chack1.html