title: Check if form is valid without re-running jquery validation
body: <p>Using <a href="http://jqueryvalidation.org/" rel="nofollow noreferrer">jQuery Validate</a>, is there a way to determine if a form is valid <em>without revalidating</em> the form.</p>
  
  <p>Per this question on <a href="https://stackoverflow.com/a/4799723/1366033">how to add a 'submitHandler' function when using jQuery Unobtrusive Validation?</a>, I'm listening to the <code>invalid-form.validate</code> event to show the user a custom error when the form has been validated and has errors.</p>
  
  <p>Per this question on how to <a href="https://stackoverflow.com/a/6435544/1366033">prevent double click on submit</a>, I'm disabling the submit button once the form has been submitted, but only if the form is valid, so the user can take corrective action and resubmit once the form is cleaned up.</p>
  
  <p>The problem is now <code>invalid-form.validate</code> fires twice.</p>
  
  <p>Since the <code>invalid-form.validate</code> event fires before my form submission handler, I'll already know the number of errors.  Does the <a href="http://jqueryvalidation.org/valid/" rel="nofollow noreferrer"><code>.valid()</code></a> method persist the number of errors somewhere that I can check against that value instead of revalidating the form.  </p>
  
  <p>Here's an example in stack snippets.  Hit submit before filling in the required fields and you'll see two error messages.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="false" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>$("form").validate();
  
  // show message on invalid submission
  $("form").on("invalid-form.validate", function (event, validator) {
    var errors = validator.numberOfInvalids();
    if (errors) {
      alert('There is a problem with ' + errors + ' fields.');
    }
  });
  
  // prevent double click form submission
  $('form').submit(function () {
    if ($(this).valid()) {
      $(':submit', this).attr('disabled', 'disabled');
    }
  });</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"&gt;&lt;/script&gt;
  &lt;script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js"&gt;&lt;/script&gt;
  
  &lt;form &gt;
    &lt;input type="text" name="Name" required /&gt;&lt;br/&gt;
    &lt;input type="text" name="Email" required /&gt;&lt;br/&gt;
    &lt;input type="submit" value="Submit"/&gt;
  &lt;/form&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>I could save them to the the element in my <code>invalid-form.validate</code>, but this won't update when the form is valid and also couples my double click code very heavily with my custom error code.  If I take out the custom error code at some later date, I'll have to rewrite the double click prevention. </p>
  
  <p>Any ideas?</p>