【问题标题】:Validate textbox with vb.net web forma使用 vb.net web 格式验证文本框
【发布时间】:2015-04-29 20:12:21
【问题描述】:

我需要帮助来限制我的文本框只接受数字。我有另一个文本框事件 textchanged ,在这种情况下,我不想让用户写除数字以外的其他字符。已经实现了最大长度,但我无法验证是否只接受数字。 这是我想要实现的条件:

 Protected Sub txtIdType_TextChanged(sender As Object, e As EventArgs)
      Dim txtb As TextBox = CType(FormViewPerson.FindControl("txtIdType"), TextBox)
      Dim txtb1 As TextBox = CType(FormViewPerson.FindControl("TextBoxIDCode"), TextBox)

      If (txtb.Text = "Leternjoftimi" OrElse txtb.Text = "KosovoIDCard" OrElse txtb.Text = "Licna karta") Then
           txtb1.MaxLength = 10
      End If
 End Sub

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    您可以在aspx page 中简单地执行此操作,如下所示:-

    <asp:TextBox ID="txtNumbers" runat="server" autocomplete="off" ValidationGroup="AddNew"></asp:TextBox>
    <asp:RegularExpressionValidator ID="regNumbers" runat="server" ErrorMessage="Only numbers are allowed" ControlToValidate="txtNumbers" ValidationExpression="^[0-9]*$" ValidationGroup="AddNew"></asp:RegularExpressionValidator>
    

    您不需要为此使用code-behind。 希望这会有所帮助

    【讨论】:

    • 我只需要 when txtb.Text = "Leternjoftimi" txtb1 只写数字,而不是所有类型
    • 将始终txtb.Text = Leternjoftimi 并且您将只写数字。请明确说明您的疑问。根据您的问题,您只需要文本框就可以只允许数字。
    • 是的,只是针对这种情况 (txtb.Text = "Leternjoftimi") 我希望另一个文本框是 maxlength = 10 并且不允许写入除数字以外的其他字符
    • @user2568960:我想,你应该试试enb081的解决方案
    【解决方案2】:

    您可以从后面的代码中添加验证器。尝试执行以下操作:

     Protected Sub txtIdType_TextChanged(sender As Object, e As EventArgs)
                Dim txtb As TextBox = CType(FormViewPerson.FindControl("txtIdType"), TextBox)
                Dim txtb1 As TextBox = CType(FormViewPerson.FindControl("TextBoxIDCode"), TextBox)
    
                If (txtb.Text = "Leternjoftimi" OrElse txtb.Text = "KosovoIDCard" OrElse txtb.Text = "Licna karta") Then
    
                txtb1.MaxLength = 10
                Dim validator As New RegularExpressionValidator()
                validator.ID = "validator" + New Random().[Next](100, 1000)
                validator.ControlToValidate = CType(FormViewPerson.FindControl("TextBoxIDCode"), TextBox).ID
                validator.ValidationExpression="^[0-9]*$"    
                FormViewPerson.Controls.Add(validator)
    
                End If
    
            End Sub
    

    苏克塞斯!

    【讨论】:

    • 您能否在浏览器中检查是否存在某个 ID 包含 validator 字的跨度?
    • 查看我的编辑:尝试将 Me.Controls.Add(validator) 更改为 FormViewPerson.Controls.Add(validator)
    • 谢谢,但还是不行,它让我可以写其他字符,而不仅仅是数字:S
    • @user2568960 允许你写超过 10 个字符吗?
    • 是的,当我从 enb081 添加这段代码时,我可以写超过 10 个字符。如果我让代码保持原来的样子,它不允许我写超过 10 个字符
    【解决方案3】:

    我用这个函数解决了我的问题:

     For Each ch As Char In txt.Text
                    If Not Char.IsDigit(ch) Then
                        txt.Text = ""
                        Exit Sub
                    End If
                Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      相关资源
      最近更新 更多