我知道内置的 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/