Проверьте правильность ValidationSummary с помощью OnClientClick

Есть ли способ проверить, имеет ли элемент управления ValidationSummary свое свойство IsValid, установленное на true, с помощью Javascript в событии OnClientClick кнопки?

Я пытаюсь показать сообщение "пожалуйста, подождите, пока ваш файл загружается" на странице загрузки, но если я использую javascript для отображения этого сообщения, оно появляется, даже если ValidationSummary содержит ошибки, поэтому сообщение появляется вместе с ошибками внизу, что сбивает пользователей с толку.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
14 921
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я предполагаю, что вам следует сделать отключить кнопку загрузки и показать сообщение во время загрузки. Например, с помощью панели ajax и шаблона прогресса.

проблема не во время загрузки, а когда элемент управления ValidationSummary выдает ошибку, которую пользователь должен исправить. Мне нужно знать, что произошла ошибка, и не показывать "ожидающий" div

Arthur Chaparyan 06.01.2009 03:09

Я думаю, это сделает то, что вы хотите.

var isValid = false;
if (typeof(Page_ClientValidate) == 'function') 
{
   isValid = Page_ClientValidate();
}

if (isValid)
{
   ShowMessage(...);
}

Кроме того, он повторно проверяет. Я думаю, что подход в принятом ответе лучше, потому что у него не должно быть ни одной из этих проблем.

Sam 29.05.2013 09:27
Ответ принят как подходящий

Если другим нужно что-то подобное, вот мое решение:

В событии OnClientClick кнопки я вызываю функцию javascript с именем showContent (). В этой функции я использую setTimeout для вызова второй функции, которая проверяет свойство IsValid страницы:

function showContent() 
{
    setTimeout("delayedShow()", 1);
}

function delayedShow() 
{
    if (Page_IsValid != null && Page_IsValid == true) 
    {
       document.getElementById('divUploading').style.display = "block";
    }
}

Page_IsValid возвращает true в событии OnClientClick, потому что после этого выполняется проверка javascript, поэтому задержка в 1 секунду позволяет правильно установить свойство IsValid.

Считаю проверку Page_IsValid != null излишней. То же самое и с == true, поскольку ASP.NET, похоже, назначает true или false только Page_IsValid. Думаю, можно просто упростить условие до if (Page_IsValid).

Sam 29.05.2013 09:25

Если у вас есть несколько групп валидации на одной странице, вы должны проверить только определенную группу:

var isValid = Page_ClientValidate('GroupName');

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