在我的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文本框,或者在这种情况下是否可以使用任何其他类型的文本框?
感谢。
答案 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>