title: Multiple times validator calls for dynamically added content using unobtrusive
body: <p>This is classic problem, that when you add content to the FORM by javascript this content is not validated despite you call 
      $.validator.unobtrusive.parse("form");</p>
  
  <p>Ok, here is nice solution: just clean information before parse:</p>
  
  <pre><code>$("form").removeData("validator");
  $("form").removeData("unobtrusiveValidation");
  $.validator.unobtrusive.parse("form");`
  </code></pre>
  
  <p>That's quite nice, and really seems working. BUT!
  Each validator is called as many times as you call this block:</p>
  
  <pre><code>$("form").removeData("validator");
  $("form").removeData("unobtrusiveValidation");
  $.validator.unobtrusive.parse("form");
  </code></pre>
  
  <p>You can check this case easily by creating custom validator and setting breakpoint inside or any debug output:</p>
  
  <pre><code>jQuery.validator.addMethod("checksalary",
     function (value, element, param) {
     return (!isNaN(value) &amp;&amp; parseInt(value) &gt; 0) || $("#" + param).attr('checked');
  });
  
  jQuery.validator.unobtrusive.adapters.add
  ("checksalary", ["param"], function (options) {
    options.rules["checksalary"] = options.params.param;
    options.messages["checksalary"] = options.message;
  });
  </code></pre>
  
  <p>That's looks really non-professional if your validators called few times instead of one.</p>
  
  <p><strong>Is there any other information should be cleaned before calling parse()?</strong></p>
  
  <p>And let's assume you've called parse() 100 times. I think such overhead will be clearly visible by client.</p>
  
  <p><strong>UPDATE</strong>
  Ok, I could debug tonns of scripts, and found, that even if we clean validation information for the form, we still not cleaned this bind, caused by line 53 in jquery.validate.js</p>
  
  <pre><code>    this.submit(function (event) {
          if (validator.settings.debug)
          // prevent form submit to be able to see console output
              event.preventDefault();
  ...
  </code></pre>
  
  <p>So I've created temporary ugly fix for this case, which works for now, but I believe there should be better way around, like update validation object, and not to create new one:</p>
  
  <pre><code>    var validator = $.data(this[0], 'validator');
      var skipReAttach = false;
      if (validator) {
          //return validator;
          skipReAttach = true;
      }
  
      validator = new $.validator(options, this[0]);
      $.data(this[0], 'validator', validator);
  
      if (validator.settings.onsubmit) {
  
          // allow suppresing validation by adding a cancel class to the submit button
          this.find("input, button").filter(".cancel").click(function () {
              validator.cancelSubmit = true;
          });
  
          // when a submitHandler is used, capture the submitting button
          if (validator.settings.submitHandler) {
              this.find("input, button").filter(":submit").click(function () {
                  validator.submitButton = this;
              });
          }
  
          // validate the form on submit
          if (skipReAttach)
              return validator;
  
          this.submit(function (event) {
              if (validator.settings.debug)
              // prevent form submit to be able to see console output
                  event.preventDefault();
  </code></pre>
  
  <p>For sure - now only 
      <code>$.validator.unobtrusive.parse("form");</code>
  should be called.</p>
  
  <p><strong>But what is the good way to fix this problem?</strong></p>