渔鱼

人生豪迈,在此一博!

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::
页面上有一个服务端控件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验证控件简单实现?
posted on 2008-04-19 03:55  博闻李  阅读(3400)  评论(0编辑  收藏  举报