如果没有一些额外的工作,我认为使用 asp:TextBox 是不可能的。仅供参考,“行”和“列”属性只是一个显示指标,不会限制字符数或回车。 MaxLength 属性也有据可查,可以在将“多行”与 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>