ASP.NET: как «сбросить» проверку после вызова Page_ClientValidate - PullRequest
3 голосов
/ 13 января 2010

У меня есть страница ASP.NET с диалоговым окном jQuery, которое отображается для изменения некоторых данных. Я настраиваю диалоговое окно jQuery, чтобы, когда пользователь нажимает кнопку «ОК», он вызывал ASP.NET

Page_ClientValidate('validationGroup') через javascript, находит все недействительные элементы управления и изменяет их класс CSS. Итак, вот сценарий: пользователь открывает диалоговое окно, вводит некоторые недействительные данные, нажимает кнопку ОК (получая сообщения проверки), а затем нажимает кнопку Отмена.

Теперь диалоговое окно закрыто, но сообщения проверки все еще присутствуют, поэтому, когда они снова открывают диалоговое окно, данные возвращаются к исходному состоянию, но форма все еще находится в недействительном состоянии (сообщения проверки все еще отображаются).

Мне нужна какая-то функция «сброс» для вызова после вызова Page_ClientValidate('validationGroup'). Это существует?

Ответы [ 4 ]

2 голосов
/ 06 мая 2010

Почему бы вам не поставить a вокруг входов в вашем диалоге и использовать кнопку сброса для отмены

<input type="reset" value="Cancel" />

Редактировать

если ваш диалоговый элемент управления уже сброшен, повторите проверку при открытии диалога.

1 голос
/ 27 ноября 2011
  1. Дайте вашим валидаторам последовательные идентификаторы, такие как validator1, validator2 и т. Д.

  2. Запустите следующий код JavaScript, чтобы скрыть сообщение об ошибке:

    var n = 0;
    var z = '';
    
    for (var i = 0; i < Page_Validators.length; i++) {
        n += 1;
        z = 'ctl00_MainContent_validator' + n;
        document.getElementById(z).style.visibility = 'hidden';
    }
    

    Это будет циклически проверять ваши валидаторы и скрывать все ранее отображаемые сообщения об ошибках.

  3. Когда нажата кнопка отправки, валидаторы снова сделают свое дело и снова отобразят сообщения об ошибках для любого сбоя валидации.

Вуаля.

1 голос
/ 28 мая 2010

Вы можете вызвать функцию на стороне клиента ValidatorValidate(validatorObj), чтобы принудительно запустить валидацию для определенного валидатора. Если вы сбрасываете (очищаете) значения формы до значений, ожидаемых валидаторами по умолчанию, а затем запускаете для них функцию ValidatorValidate, у вас все будет в порядке. См. документацию здесь .

0 голосов
/ 13 января 2010

Почему бы вам просто не удалить сообщения проверки, когда пользователь нажимает кнопку "Отмена"?

...