Javascript checking if page is valid
Solution 1
I believe I've found a "kind of" answer.
I still cannot identify why my page will not identify "Page_ClientValidate()" or "Page_IsValid" - this part is still unanswered.
However, I am using a number of PeterBlum validators on the page, and those do provide a "VAM_ValOnSubmit()" that returns true/false. So this may be the solution. I might just have to be sure all the validators are PeterBlum to catch them all.
Not the greatest solution, but better than I've gotten so far. I'm still open to answers on the "Page_IsValid" portion.
Solution 2
According to the section "The Client-Side API" on the page "ASP.NET Validation in depth":
Page_IsValid | Boolean variable | Indicates whether the page is currently valid. The validation scripts keep this up to date at all times.
Indeed, watching this variable in FireBug on a form with ASP.NET client side validation enabled, it does get updated as I fill in details of the form (incorrectly, or correctly).
Obviously, if you've disabled client script on your validators or the validation summary, then this variable won't be available to you.
Solution 3
Just check
if(Page_IsValid)
{
//Yourcode
}
This works if you have validators in the page, which excludes the validation summary.
Chad
Updated on July 09, 2022Comments
-
Chad almost 2 years
On my submit button, what I'd like to do is OnClick show a "Please wait" panel and hide the button, UNLESS the validators say something's invalid - then I need the buttons still showing obviously. Otherwise I have a validation summary showing erros and no way to submit again.
Most articles I find about doing this want to use Page_ClientValidate() function to tell the page to validate itself, but this comes back undefined for me, as does Page_IsValid variable. Here is the function I'm trying to use - what am I missing?:
function PleaseWaitShow() { try { alert("PleaseWaitShow()"); var isPageValid = true; // Do nothing if client validation is not active if (typeof(Page_Validators) == "undefined") { if (typeof(Page_ClientValidate) == 'function') { isPageValid = Page_ClientValidate(); alert("Page_ClientValidate returned: " + isPageValid); alert("Page_IsValid=" + Page_IsValid); } else { alert("Page_ClientValidate function undefined"); } } else { alert("Page_Validators undefined"); } if(isPageValid) { // Hide submit buttons document.getElementById('pnlSubmitButton').style.visibility = 'hidden'; document.getElementById('pnlSubmitButton').style.display = 'none'; // Show please wait panel document.getElementById('pnlPleaseWait').style.visibility = 'visible'; document.getElementById('pnlPleaseWait').style.display = 'block'; } else { alert("page not valid - don't show please wait"); } } catch(er) { alert("ERROR in PleaseWaitShow(): " + er); } }
-
Quintin Robinson about 15 yearsIt is a method provided by ASP.NET Validators, this wasn't specified but I believe this is what the OP is referring to.
-
Chad about 15 yearsThat's right - here's where I got the ideas (see far bottom): experts-exchange.com/Programming/Languages/.NET/ASP.NET/…
-
Chad about 15 yearson my button click I added: alert(typeof(Page_IsValid)); which comes back "undefined"