【问题标题】:Clear Textbox with Regular Expression Validator使用正则表达式验证器清除文本框
【发布时间】:2013-05-24 09:07:06
【问题描述】:

我有一个带有正则表达式验证器的文本框,用于验证我的文本框是否为数字。

代码如下:

<asp:TextBox ID="txtAmount" runat="server" CssClass="TextBoxCls"></asp:TextBox>
<asp:RegularExpressionValidator runat="server" ID="valNumbersOnly" ControlToValidate="txtAmount"
                            SetFocusOnError="true" Display="Dynamic" ErrorMessage="Please enter a numbers only in text box."
                            Font-Bold="true" ForeColor="Red" ValidationExpression="(^([0-9 ]*|\d*\d{1}?\d*)$)">
                        </asp:RegularExpressionValidator>

而且,如果用户不小心输入了错误的数据,它会显示如下错误:

我给用户一个清除所有文本框的清除功能:使用这种功能:

 Public Sub ClearTextBox(ByVal root As Control)
        For Each ctrl As Control In root.Controls
            ClearTextBox(ctrl)
            If TypeOf ctrl Is TextBox Then
                CType(ctrl, TextBox).Text = String.Empty
            End If
        Next ctrl
    End Sub


    Protected Sub btnClr_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnClr.Click

        ClearTextBox(Me)
        dropResponse.SelectedIndex = 0
        FillData()

    End Sub

但是,金额没有清除,仍然显示错误。为什么它仍然会发生?

【问题讨论】:

    标签: asp.net regex vb.net validation textbox


    【解决方案1】:

    如果您通过同一表单上的另一个按钮提供此信息,它将永远不会点击代码隐藏。

    如果您想要一个经过验证的表单上的按钮需要触发而不管其他控件是否已验证,请将其放在单独的验证组中:

    <asp:Button runat="server" ID="btnClr" Text="Clear form" OnClick="btnClr_Click" ValidationGroup="unvalidatedControls" />
    

    或者,在需要验证的控件以及提交表单的按钮上放置一个验证组:

    <asp:TextBox ID="txtAmount" runat="server" CssClass="TextBoxCls" ValidationGroup="validatedControls"></asp:TextBox>
    <asp:RegularExpressionValidator runat="server" ID="valNumbersOnly" ControlToValidate="txtAmount"
                                SetFocusOnError="true" Display="Dynamic" ErrorMessage="Please enter a numbers only in text box."
                                Font-Bold="true" ForeColor="Red" ValidationExpression="(^([0-9 ]*|\d*\d{1}?\d*)$)"
                                ValidationGroup="validatedControls">
                            </asp:RegularExpressionValidator>
    
    <asp:Button runat="server" ID="btnSubmit" Text="Submit Form" ValidationGroup="validatedControls" />
    

    您可以在清除按钮和主窗体上都添加ValidationGroup 属性,只要它们不同,清除按钮就可以正常工作。

    关于验证组的一些文档:http://msdn.microsoft.com/en-us/library/ms227424.aspx

    【讨论】:

      【解决方案2】:

      我怀疑文本框包含在面板或其他容器控件中。页面的控件集合中只有页面的顶级控件可用。

      我建议使用正确的容器控件更改对 ClearTextBox 的调用参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 2011-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-24
        • 1970-01-01
        相关资源
        最近更新 更多