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