页面上有一个服务端控件TextBox,设置多行模式,希望限制用户输入字数。
最初尝试使用RegularExpressionValidator控件,期望使用正则表达式匹配带有回车、换行的所有文本,但是,最终没实现
。
于是多写几行代码,使用Javascript实现,相关代码如下:
<asp:TextBox ID="CommentTextBox" runat="server" TextMode="multiline" Rows="5"
onblur="CommentLengthValidator(this, 50)"
onkeydown="CommentLengthValidator(this, 50)"></asp:TextBox>
<label id="CommentLengthValidatorLable" style="color:Red;"></label>
<script language="javascript">
function CommentLengthValidator(obj, len)
{
var mesgBox=document.getElementById("CommentLengthValidatorLable");
if(obj.value.length > len)
{
obj.value=obj.value.substr(0,len);
mesgBox.innerText="Limited characters " + len + ".";
}
else
{
mesgBox.innerText="";
}
}
</script>
补充说明:
1. 文本超出的处理是自动截取指定长度和警告提示。
2. Html代码中使用了2个事件调用同一方法CommentLengthValidator,目的是分别处理粘贴文本和实时输入文本的情况。
3. onblur:处理粘贴文本的情况,当控件失去焦点便触发执行。
4. onkeydown:处理键盘实时输入文本情况,当文本字符数超出范围时便触发执行。
最后,呼唤能人高手,请赐教如何使用ASP.NET验证控件简单实现?
最初尝试使用RegularExpressionValidator控件,期望使用正则表达式匹配带有回车、换行的所有文本,但是,最终没实现
![](https://www.cnblogs.com/Emoticons/msn/confused_smile.gif)
于是多写几行代码,使用Javascript实现,相关代码如下:
<asp:TextBox ID="CommentTextBox" runat="server" TextMode="multiline" Rows="5"
onblur="CommentLengthValidator(this, 50)"
onkeydown="CommentLengthValidator(this, 50)"></asp:TextBox>
<label id="CommentLengthValidatorLable" style="color:Red;"></label>
<script language="javascript">
function CommentLengthValidator(obj, len)
{
var mesgBox=document.getElementById("CommentLengthValidatorLable");
if(obj.value.length > len)
{
obj.value=obj.value.substr(0,len);
mesgBox.innerText="Limited characters " + len + ".";
}
else
{
mesgBox.innerText="";
}
}
</script>
补充说明:
1. 文本超出的处理是自动截取指定长度和警告提示。
2. Html代码中使用了2个事件调用同一方法CommentLengthValidator,目的是分别处理粘贴文本和实时输入文本的情况。
3. onblur:处理粘贴文本的情况,当控件失去焦点便触发执行。
4. onkeydown:处理键盘实时输入文本情况,当文本字符数超出范围时便触发执行。
最后,呼唤能人高手,请赐教如何使用ASP.NET验证控件简单实现?