Как проверить, проверил ли валидатор и провалил валидацию на странице - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть несколько валидаторов на странице, которые все работают правильно, когда нажата кнопка «Отправить»

Однако мне нужно проверить, не прошли ли валидаторы, когда я инициирую обратную передачу через выпадающий список, выбранное событие изменения индекса, такчтобы сообщения о неудачной проверке сохранялись правильно, оставайтесь

Другими словами, я пытаюсь проверить, был ли запущен определенный валидатор и произошел ли сбой

Я попробовал следующее

  1. Я проверил свойство isValid, но оно всегда верно независимо от того, что
  2. Я пытался проверить метод Page.IsValid, но он не работает без предыдущего вызова Page.Validate ()
  3. Я пыталсяпроверить, является ли сообщение о сбое видимым и присутствующим, но нет такой опции для валидатора

Таким образом, есть ли способ проверить, был ли требуемый валидатор только что запущен и вышел из строя?

Кажется, что-то простое, но я все еще не могу найти решение

Большое спасибо заранее

1 Ответ

0 голосов
/ 07 декабря 2018

Придумали решение

HTML

    <asp:UpdatePanel runat="server" id="UpdatePanel1">
    <ContentTemplate>

    <table class="innerTable" border="0">
      <tr>
    <td>
        <asp:DropDownList  CssClass="textboxwidth" runat="server" ID="ddOrg" AutoPostBack="true" OnSelectedIndexChanged="ddOrg_SelectedIndexChanged" setCausesValidation="true"></asp:DropDownList>
        <asp:RequiredFieldValidator SetFocusOnError="true" ID="RequiredFieldValidator3" runat="server" Display="Dynamic" ControlToValidate="ddOrg" InitialValue="" ErrorMessage="* Required"></asp:RequiredFieldValidator>
        <input type="hidden" id="hdFirmValidator" runat="server" />
        <input type="hidden" id="hdPhoneValidator" runat="server" />
        <input type="hidden" id="hdPhoneValidatorRegex" runat="server" />
    </td>
</tr>
<tr>
    <td>
        <asp:TextBox ID="txtOrgOther" Enabled="false" CssClass="textboxwidth" MaxLength="100" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator SetFocusOnError="true" ID="RequiredFieldValidator12" Enabled="false" runat="server" Display="Dynamic" ControlToValidate="txtOrgOther" ErrorMessage="* Required" ></asp:RequiredFieldValidator>
    </td>
</tr>
<tr>
    <td>
        <asp:TextBox CssClass="textboxwidth" ID="txtOrgAddress" TextMode="MultiLine" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator SetFocusOnError="true" ID="RequiredFieldValidator14" runat="server" Display="Dynamic" ControlToValidate="txtOrgAddress" ErrorMessage="* Required" ></asp:RequiredFieldValidator>
    </td>
</tr>
<tr>
<td>
<asp:TextBox CssClass="textboxwidth" ID="txtOrgPhone" runat="server" MaxLength="30"></asp:TextBox>
<asp:RequiredFieldValidator SetFocusOnError="true" ID="RequiredFieldValidator15" runat="server" Display="Dynamic" ControlToValidate="txtOrgPhone" ErrorMessage="* Required" ></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="regexPhone1" ValidationExpression="^.{0,30}" ErrorMessage="*Enter upto 30 digit phone number" runat="server" ControlToValidate="txtOrgPhone"></asp:RegularExpressionValidator>
</td>
              </tr>
       </table>
</ContentTemplate>

JavaScript

    window.onload = function () {

    var btnSubmit = document.getElementById("<%=btnSubmit.ClientID%>");
    function SetHiddenFields() {

    var firmValidator = document.getElementById("<%=RequiredFieldValidator14.ClientID%>");
    var hdFirmValidator = document.getElementById("<%=hdFirmValidator.ClientID%>");
    hdFirmValidator.value = firmValidator.style.display;

    var phoneValidator = document.getElementById("<%=RequiredFieldValidator15.ClientID%>");
    var hdPhoneValidator = document.getElementById("<%=hdPhoneValidator.ClientID%>");
    hdPhoneValidator.value = phoneValidator.style.display;

    var phoneValidatorRegEx = document.getElementById("<%=regexPhone1.ClientID%>");
    var hdPhoneValidatorRegex = document.getElementById("<%=hdPhoneValidatorRegex.ClientID%>");
    hdPhoneValidatorRegex.value = phoneValidatorRegEx.style.display;

    return true;

}

btnSubmit.onclick = SetHiddenFields; }

Codebehind

    protected void ddOrg_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Srver side code

        RequiredFieldValidator3.Validate();

        if (hdFirmValidator.Value != string.Empty)
        {
            RequiredFieldValidator14.Validate();
        }

        if (hdPhoneValidator.Value != string.Empty)
        {
            RequiredFieldValidator15.Validate();
        }

        if (hdPhoneValidatorRegex.Value != string.Empty)
        {
            regexPhone1.Validate();
        }

    }
...