Verifica se ValidationSummary è valido utilizzando OnClientClick
-
03-07-2019 - |
Domanda
Esiste un modo per verificare se un controllo ValidationSummary ha la proprietà IsValid impostata su true utilizzando Javascript nell'evento OnClientClick di un pulsante?
Quello che sto cercando di fare è mostrare un messaggio che dice " attendere che il file venga caricato " su una pagina di caricamento, ma se uso JavaScript per mostrare quel messaggio, viene visualizzato anche quando ValidationSummary presenta errori, quindi il messaggio viene visualizzato insieme agli errori sottostanti, il che confonde gli utenti.
Soluzione 2
Nel caso in cui altri abbiano bisogno di qualcosa del genere, ecco la mia soluzione:
Nell'evento OnClientClick del pulsante, sto chiamando una funzione javascript chiamata showContent (). In questa funzione, utilizzo setTimeout per chiamare una seconda funzione che controlla la proprietà IsValid della pagina:
function showContent()
{
setTimeout("delayedShow()", 1);
}
function delayedShow()
{
if (Page_IsValid != null && Page_IsValid == true)
{
document.getElementById('divUploading').style.display = "block";
}
}
Page_IsValid
restituisce true nell'evento OnClientClick
perché la convalida javascript viene eseguita successivamente, quindi il ritardo di 1 secondo consente di impostare correttamente la proprietà IsValid.
Altri suggerimenti
Penso che questo farà quello che vuoi.
var isValid = false;
if (typeof(Page_ClientValidate) == 'function')
{
isValid = Page_ClientValidate();
}
if(isValid)
{
ShowMessage(...);
}
Se hai più gruppi di validazione su una sola pagina, dovresti controllare solo un determinato gruppo:
var isValid = Page_ClientValidate('GroupName');
Suppongo che ciò che dovresti fare è dissable the pulsante di caricamento e mostra un messaggio mentre il caricamento è in corso. Ad esempio utilizzando un pannello Ajax e un modello di avanzamento.