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)
我现在自己找到了解决方法:
通过将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)