检查ASP.NET中文本框的验证状态

问题描述 投票:0回答:2

我正在使用由.NET framework提供的默认验证器,即'TextMode=EMail''ValidateRequetMode=Enabled',我想在按钮onclick验证与否时触发它们。

我的目的是创造如下功能;

function func()
 {
  if(tbEmail.validated==true)
   {
     swal("PROCESSING...");
   }
 }

我的aspx代码如下所示;

<asp:TextBox ID="tbMail" minlength="1" runat="server" TextMode="Email" ValidateRequestMode="Enabled" ></asp:TextBox>
<asp:TextBox ID="tbPassword" minlength="4" runat="server" TextMode="Password" MaxLength="12" required="" ValidateRequestMode="Enabled"></asp:TextBox>
<asp:Button ID="btnLogin" runat="server"  CssClass="ButtonClass" OnClick="btnLogin_Click" OnClientClick="return func();" />

我怎么能得到它?

javascript c# asp.net
2个回答
0
投票

试试这个 :

<asp:TextBox ID="tbEmail" runat="server" TextMode="Email" />

<asp:RegularExpressionValidator runat="server"     
    ControlToValidate="tbEmail"
    ValidationExpression="^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$"
    ErrorMessage="Please provide a valid email address." 
    Display="Dynamic"/>

注意:这只是一个例子。您需要根据需要进行更改。

选项1

您可以将ValidationGroup添加到验证器。然后你可以使用返回bool值的Page_ClientValidate(validationgroup)方法。此方法返回验证结果的状态。

<asp:RegularExpressionValidator id="revEmail" runat="server"     
    ControlToValidate="tbEmail"
    ValidationExpression="^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$"
    ErrorMessage="Please provide a valid email address." 
    Display="Dynamic" ValidationGroup="email"/>

然后你可以编写你的函数(正如你所要求的那样)来对不同的事件做进一步的操作。

<script>
function func()
{
  if(Page_ClientValidate("email"))
  {
    // Perform your operation
  }
}
</script>

OPTION-2

这不是直接的方式,但技术上可行。

另外,您可以检查验证消息的可见性(验证器在验证失败的情况下生成错误消息)。

if (document.getElementById("ctl00_ContentPlaceHolder1_revEmail").style.visibility == "hidden") {
  // text box validated successfully
} else {
  // error occured
}

0
投票

我终于找到了。

if (tbEmail.validity.valid == true) 
{
  // yays, it worked.
}
© www.soinside.com 2019 - 2024. All rights reserved.