Javascript checking if page is valid

21,239

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.

Share:
21,239
Chad
Author by

Chad

Updated on July 09, 2022

Comments

  • Chad
    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
    Quintin Robinson about 15 years
    It is a method provided by ASP.NET Validators, this wasn't specified but I believe this is what the OP is referring to.
  • Chad
    Chad about 15 years
    That's right - here's where I got the ideas (see far bottom): experts-exchange.com/Programming/Languages/.NET/ASP.NET/…
  • Chad
    Chad about 15 years
    on my button click I added: alert(typeof(Page_IsValid)); which comes back "undefined"