检查ASP.Net验证器客户端的结果

Ste*_*fen 4 javascript asp.net validation

我知道内置的ASP.Net验证器带有客户端框架,但是我一直无法找到任何可以让我检查单个验证器的有效状态.

我希望它有可能,所以我希望有人在这里知道怎么做:-)

有问题的验证器是RegularExpressionValidator,我用它来确定电子邮件地址是否有效.

这是一些简短的代码:

<script>
function CheckForExistingEmail()
{
  Page_ClientValidate(); // Ensure client validation
  if (revEmail.IsValid) // pseudo code!
  {
    // Perform server side lookup in DB for whether the e-mail exists.
  }
}
</script>

<asp:TextBox runat="server" id="tbEmail" onblur="CheckForExistingEmail();" />
<asp:RegularExpressionValidator id="revEmail" runat="server" ControlToValidate="tbEmail" ErrorMessage="Not a valid e-mail address" ValidationExpression="([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})" />
Run Code Online (Sandbox Code Playgroud)

Ste*_*fen 6

我现在自己找到了解决方法:

通过将ValidationGroup添加到验证器,我可以使用Page_ClientValidate(validationgroup) - 它返回一个bool值.

我不确定你的意思是否与Pabuc相同,如果是,请放弃答案,我显然会选择那个正确的:-)

这是有效的代码:

<script>
function CheckForExistingEmail()
{
  if(Page_ClientValidate("email"))
  {
    // Perform server side lookup in DB for whether the e-mail exists.
  }
}
</script>

<asp:TextBox runat="server" id="tbEmail" onblur="CheckForExistingEmail();" />
<asp:RegularExpressionValidator id="revEmail" runat="server" ValidationGroup="email" ControlToValidate="tbEmail" ErrorMessage="Not a valid e-mail address" ValidationExpression="([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})" />
Run Code Online (Sandbox Code Playgroud)