Проверка результата проверки ASP.Net на стороне клиента - PullRequest
4 голосов
/ 28 декабря 2010

Я знаю, что встроенные валидаторы 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})" />

Ответы [ 2 ]

6 голосов
/ 28 декабря 2010

Я сам нашел способ обойти это сейчас:

Добавляя ValidationGroup в валидатор, я могу использовать Page_ClientValidate (validationgroup) - который возвращает значение bool.

Я неконечно, если это было то же самое, что вы имели в виду Пабук, если это было, пожалуйста, напишите ответ, и я, очевидно, выберу его как правильный: -)

Вот код, который работает:

<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})" />
1 голос
/ 08 мая 2013

Вы можете посмотреть на видимость сообщения валидатора (обычно у нас есть красная звездочка *)

if (document.getElementById("ctl00_ContentPlaceHolder1_revClientSite").style.visibility == "hidden") {
  // validator says go ahead
} else {
  alert("please fix the indicated field - it is not valid");
}

.style.visibility будет «скрытым» или «видимым»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...