限制多行asp.net文本框中的行数

时间:2017-11-15 14:08:28

标签: asp.net textbox

在我的asp.net网页上,我有一个大的多行文本框,我希望用户只能填写最多5行文本。 (如果用户在第5行按下输入则不会让他。)

我对文本框的代码:

<asp:TextBox textmode="multiline"
             runat="server"
             ID="TextBox1"
             name="TextBox1"
             style="OVERFLOW:hidden; height:165px; width:95%; resize:none;">

</asp:TextBox>

我已经尝试使用Rows属性和几个JavaScript函数,但没有成功。

这是否可以使用asp.net文本框,或者在这种情况下是否可以使用任何其他类型的文本框?

感谢。

1 个答案:

答案 0 :(得分:0)

我不认为使用asp:TextBox可以实现这一点,而无需额外的工作。仅供参考,&#34;行&#34;和&#34;列&#34;属性只是一个显示指标,不会限制字符数或回车数。 MaxLength属性也有很好的记录,在使用&#34; multiline&#34;用asp:Textbox。

然而 ,您确实有以下几个选项。注意:通常输入是按长度验证的,因为您不希望它超出数据库表中的字段大小。希望这些例子能有所帮助。

1)滚动您自己的Javascript验证程序。 (此示例仅限于验证长度,而不是回车符,但您可以进一步自定义。)

<asp:TextBox textmode="multiline"
             runat="server"
             ID="TextBox1"
             name="TextBox1"
             onkeypress="return EnforceFieldLengthMax(this,10)"
             style="OVERFLOW:hidden; height:165px; width:95%; resize:none;">
        </asp:TextBox>

<script language="javascript">   
        function EnforceFieldLengthMax(txt, maxLen)
        {
            if (txt.value.length > (maxLen - 1))
            {
                return false;
            }
        }
    </script>

2)正则表达式验证器 (不幸的是,在控制失去焦点之前,这不会被激发,所以我不认为这个是你正在寻找的,但这里只是一个例子)**

 <asp:TextBox textmode="multiline"
             runat="server"
             ID="TextBox2"
             name="TextBox2"
             style="OVERFLOW:hidden; height:165px; width:95%; resize:none;">
        </asp:TextBox>

<asp:Label AssociatedControlID="txtValidateMe"></asp:Label>


<asp:RegularExpressionValidator ID="TextBox2Validator" 
                                ControlToValidate="TextBox2" ErrorMessage="Entry can't exceed 20 characters"
                                ValidationExpression="^[\s\S]{0,20}$" runat="server" Display="Dynamic"  SetFocusOnError="true" />

3)使用强制执行MaxLength的HTML TextArea对象

<textarea maxlength="50"></textarea>