CompareValidator не работает хорошо - ASP.net - PullRequest
1 голос
/ 18 марта 2020

Я использовал валидатор сравнения для проверки правильности выбранной даты. Проблема в том, что он срабатывает только при нажатии кнопки отправки, можно ли проверить, когда пользователь выбирает дату.

<tr id="trow" runat="server"> 
            <td class="auto-style3">Need Duration</td>  
            <td class="auto-style2">  
            <asp:TextBox ID="TextBox1" runat="server" ReadOnly = "true"></asp:TextBox>
             <asp:ImageButton ID="imgJoin" runat="server" ImageUrl="Images/calender.png"/>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
            ControlToValidate="TextBox1" ErrorMessage="*" ForeColor="Red" 
            SetFocusOnError="True"></asp:RequiredFieldValidator></td>


              <td> 
             <asp:TextBox ID="TextBox2" runat="server" ReadOnly = "true"></asp:TextBox>
              <asp:ImageButton ID="imgHide" runat="server" ImageUrl="Images/calender.png"/>
             <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" 
            ControlToValidate="TextBox2" ErrorMessage="*" ForeColor="Red" 
            SetFocusOnError="True"></asp:RequiredFieldValidator>

             <asp:CompareValidator ID="CompareValidator1" runat="server" Operator="GreaterThanEqual"
              ControlToValidate="TextBox2" ControlToCompare="TextBox1" 
               ErrorMessage='Invalid Date' 
                 ForeColor="Red"></asp:CompareValidator>
             </td>
            </tr>  

1 Ответ

1 голос
/ 18 марта 2020

Это было давно, но я думаю, что вам нужно включить сценарии проверки на стороне клиента, добавив:

EnableClientScript="True"

Пример

<asp:CompareValidator ID="CompareValidator1" EnableClientScript="True" runat="server" 
          Operator="GreaterThanEqual"
          ControlToValidate="TextBox2" ControlToCompare="TextBox1" 
          ErrorMessage='Invalid Date' 
          ForeColor="Red"></asp:CompareValidator>

Это задокументировано в msdn .


Кроме того, я знаю, что в пользовательских валидаторах часто отсутствует правильная реализация javascript. Я не уверен, как CompareValidator ведет себя в этом смысле.

Возможно, вам потребуется создать унаследованный класс для полной реализации сценариев. Прежде чем идти туда, попробуйте немного изучить.

Например, вот решение с пользовательским валидатором

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