【问题标题】:Limit the amount of lines in a multi line asp.net textbox限制多行 asp.net 文本框中的行数
【发布时间】:2017-11-15 14:08:28
【问题描述】:

在我的 asp.net 网页上,我有一个大的多行文本框,我希望用户最多只能填写 5 行文本。 (如果用户在第 5 行按 Enter 键,它根本不会让他这样做。)

文本框的代码:

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

谢谢。

【问题讨论】:

    标签: asp.net textbox


    【解决方案1】:

    如果没有一些额外的工作,我认为使用 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>
    

    【讨论】:

      猜你喜欢
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多