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

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

有问题的验证器是一个 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})" />

最佳答案

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

通过向验证器添加 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})" />

关于javascript - 检查 ASP.Net 验证器客户端的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4546745/

10-12 00:11