Search code examples
jqueryasp.netunobtrusive-validation

"Uncaught TypeError: Cannot read property 'setDefaults' of undefined" in console when page is loaded


After updating the Jquery.Validation to version: 1.19.2, the error started displaying in the console on page load, it was not throwing errors with the older versions.

This is my code:

var defaultOptions = {
  validClass: '',
  errorClass: 'is-invalid',
  highlight: function(element, errorClass, validClass) {
    $(element).closest("div")
      .removeClass(this.validClass)
      .addClass(this.errorClass);
  },
  unhighlight: function(element, errorClass, validClass) {
    $(element).closest("div")
      .removeClass(this.errorClass)
      .addClass(this.validClass);
  }
};

$.validator.setDefaults(defaultOptions);

$.validator.unobtrusive.options = {
  errorClass: defaultOptions.errorClass,
  validClass: defaultOptions.validClass
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

The error is thrown specifically at : "$.validator.setDefaults(defaultOptions);" line


Solution

  • Did not find a suitable solution to the issue in version 1.19.2, but downgrading the version back to it's previous version 1.15.1 did the trick.