【发布时间】:2012-10-18 18:04:01
【问题描述】:
我目前想知道字段的服务器端验证。
例如我有一个不能为空的字段,必须是数字并且必须小于 999999。
要验证的示例代码是:
If checkNumeric(txtBaseSalary.Text) = True Then
txtBaseSalary.CssClass = "text"
Else
x += 1
step_4 += 1
txtBaseSalary.CssClass = "text error"
End If
If val(txtBaseSalary.Text) = 0 or val(txtBaseSalary.Text) > 999999 Then
x += 1
step_4 += 1
txtBaseSalary.CssClass = "error text"
Else
txtBaseSalary.CssClass = "text"
End If
但是我确定你已经发现了这个问题,如果它没有通过第一次验证但通过了第二次验证,那么错误量 (step_4) 将会增加,但是如果通过了第二次验证,那么视觉表示就会被清除。
有没有人在没有嵌套 if 语句的情况下对一个字段进行多次验证?
另外,请提供可适用于需要多次验证的任何情况的解决方案,而不仅仅是这里是一种您可以验证我发布的一种情况的方法。
【问题讨论】:
-
为什么不使用 ASP.NET 验证控件msdn.microsoft.com/en-us/library/aa479013.aspx
-
使用
CustomValidator和ValidateEmptyText=true。然后使用regex。 -
如果第一个失败,你还需要检查第二个条件吗?如果不是,请使用“else if”,以便在第一次失败后停止。 (请注意,其他人在使用开箱即用验证时提供了一些很好的参考。)
-
正确我不需要做第二次检查,如果第一次失败@RayK 但是我想避免使用多个 if 语句,因为我可以对一个字段说 5 次检查,具体取决于其他输入。
-
@TimSchmelter 可以扩展 CustomValidator 以允许我指定新检查并为新检查创建正则表达式吗?
标签: asp.net vb.net validation