title: Knockout validation plugin - show error messages only on form submit
body: <p>I'm using knockout binding along with  knockout validation plugin 
  (<a href="https://github.com/Knockout-Contrib/Knockout-Validation" rel="nofollow">https://github.com/Knockout-Contrib/Knockout-Validation</a>)</p>
  
  <p>I want to show error messages only on form submit and not in input blur, any ideas?</p>
  
  <p>HTML</p>
  
  <pre><code>&lt;div id="formErrorMessages" data-bind="visible: errors().length != 0"&gt;
             &lt;p data-bind="validationMessage : email"&gt;&lt;/p&gt;
             &lt;p data-bind="validationMessage: firstName"&gt;&lt;/p&gt;
             &lt;span class="arrow-down"&gt;&lt;/span&gt; &lt;/div&gt;
  
  &lt;form id="short-reg-form" method="post" data-bind="validationOptions: { insertMessages:false,decorateInputElement:true,errorElementClass:'input-error' },submit:submit"&gt;   
      &lt;input type="text" name="email" data-bind="value: email" class="email" data-placeholder="Email"/&gt;   
      &lt;input type="text" name="firstName" data-bind="value: firstName" class="right-input" data-placeholder="First Name"/&gt;
  
  &lt;/form&gt;
  </code></pre>
  
  <p>JS</p>
  
  <blockquote>
    <p>function viewModel() {</p>
    
    <p>var self = this;</p>
  
  <pre><code>self.showErrorsDiv = ko.observable(false);
  //Email
  var emailPlaceholder = getPlaceholder("email");
  self.email = ko.observable("")
      .extend({
          ng_required: {
              params: emailPlaceholder,
              message: notValidValueReturnString(emailString)
          },
          ng_email: {
              params:emailPlaceholder,
              message:notValidValueReturnString(emailString)
          }
      }).clearError(); // invoke clearError to prevent validation on page load.
  //--Email
  //FirstName
  var firstNamePlaceholder = getPlaceholder("firstName");
  self.firstName = ko.observable("").extend({
      ng_required: {
          params: firstNamePlaceholder,
          message : notValidValueReturnString(firstNameString)
      }
  });
  //--FirstName
  self.submit = function (e) {
  
      if (self.errors().length == 0) { // check form validation.
          alert(true);
      } else {
          alert(false);
      }
  
      //prevent form submit default behavior.
      return false;
  };
  
  // utilities 
  function getPlaceholder(nameAttributeVal) {
      return $('#short-reg-form input[name="' + nameAttributeVal + '"]').attr("data-placeholder");
  }//--utilities  
  </code></pre>
    
    <p>}</p>
  
  <pre><code>$(function () {
  
  // attach view model to the DOM
  var pageModel = new viewModel();
  pageModel.errors = ko.validation.group([pageModel.email,pageModel.firstName]);
  
  ko.applyBindings(pageModel);
  </code></pre>
    
    <p>}); </p>
  </blockquote>
  
  <p>thanks. </p>