Проверка на стороне клиента для различных событий управления

У меня есть собственный валидатор, прикрепленный к элементу управления textbox следующим образом

<td align="center" width="10px">
  <asp:CustomValidator ID="validateDateText" ControlToValidate="dateTextBox" 
       runat="server" OnServerValidate="ValidateDate" 
       ClientValidationFunction="Validate_Date" EnableClientScript="true" 
       Width="10px" CssClass="errortext" Text="*" Font-Size="Medium" Font-Bold="true" />
</td>
<td align="center" width="80px">
  <asp:Textbox ID="dateTextBox" MaxLength="100" runat="server"  
       CssClass="dateselectortextbox" style="margin-right: 3px;" />
</td>

Когда я щелкаю кнопку на странице с reasonvalidation="true", клиентский сценарий запускается, и сводная информация о проверке отражает сообщение об ошибке, а средство проверки показывает *

Однако, когда я щелкаю из текстового поля, только валидатор отображает *, валидация не обновляется.

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

Есть идеи?

РЕДАКТИРОВАТЬ:

ErrorMessage устанавливается в коде для валидатора

Я добавил EnableClientScript в мою валидацию.

Я добавил ValidationGroup в мою контрольную сумму, настраиваемый валидатор, текстовое поле и кнопку, но сводка проверки обновляется для нажатия кнопки, но не для события onblur текстового поля

3 ответа

Решение

Вам обязательно нужно использовать errormessage="xyz", чтобы сообщение отображалось в сводке проверки. Группа проверки не должна иметь значения, если у вас не более одной группы проверяемых элементов управления.

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

Я думаю, что вы можете использовать ErrorMessage ="Некоторые информативные сообщения об ошибках" внутри вашего CustomValidator. Вам также необходимо установить ValidationGroup ="SomeGroupName" для CustomValidator, элемента управления ValidationSummary, а также элемента управления, вызывающего обратную передачу.

Вам нужно установить dateTextBox.ValidationGroup, validateDateText.ValidationGroup а также yourValidationSummary.ValidationGroup к тому же значению.

См. http://msmvps.com/blogs/brianmadsen/pages/ASP.Net-2.0-_2D00_-How-to-use-the-new-validation-features_2C00_-part-1.aspx.

Другие вопросы по тегам