Verifique se ValidationSummary é válido usando OnClientClick
-
03-07-2019 - |
Pergunta
Existe uma maneira de verificar se um controle ValidationSummary tem sua IsValid conjunto de propriedades como true usando Javascript no caso OnClientClick de um botão?
O que eu estou tentando fazer é mostrar uma mensagem que diz "por favor, aguarde enquanto o arquivo é carregar" em uma página de upload, mas se eu usar javascript para mostrar essa mensagem, ele mostra-se mesmo quando o ValidationSummary tem erros , por isso a mensagem aparece junto com os erros por baixo, o que confunde os usuários.
Solução 2
No caso de outros precisam de algo como isso, aqui está a minha solução:
No evento OnClientClick do botão, eu estou chamando uma função JavaScript chamada showContent (). Nesta função, eu uso setTimeout para chamar uma segunda função que verifica propriedade IsValid da página:
function showContent()
{
setTimeout("delayedShow()", 1);
}
function delayedShow()
{
if (Page_IsValid != null && Page_IsValid == true)
{
document.getElementById('divUploading').style.display = "block";
}
}
Os Page_IsValid
retorna True no evento OnClientClick
porque as JavaScript é executado validação Após isso, de modo que o atraso de 1 segundo permite que a propriedade IsValid de ser devidamente definido.
Outras dicas
Eu acho que isso vai fazer o que quiser.
var isValid = false;
if (typeof(Page_ClientValidate) == 'function')
{
isValid = Page_ClientValidate();
}
if(isValid)
{
ShowMessage(...);
}
Se você tem vários grupos de validação em uma página, então você deve verificar apenas determinado grupo:
var isValid = Page_ClientValidate('GroupName');
Eu acho que o que você deve fazer é dissable o uppload botão e mostrar uma mensagem enquanto carregamento está em andamento. Por exemplo, utilizando um painel de Ajax e um modelo de progresso.