diff --git a/src/core.js b/src/core.js index 52c79a2de..4a62d634a 100644 --- a/src/core.js +++ b/src/core.js @@ -671,9 +671,9 @@ $.extend( $.validator, { return $( selector )[ 0 ]; }, - errors: function() { + errors: function( errorContext ) { var errorClass = this.settings.errorClass.split( " " ).join( "." ); - return $( this.settings.errorElement + "." + errorClass, this.errorContext ); + return $( this.settings.errorElement + "." + errorClass, errorContext ? errorContext : this.errorContext ); }, resetInternals: function() { @@ -1024,9 +1024,17 @@ $.extend( $.validator, { .replace( /\s+/g, ", #" ); } - return this + var errors = this .errors() .filter( selector ); + + if ( errors.length === 0 && $(element).closest(element.form).length === 0 ) { + errors = this + .errors($(element).parent()) + .filter( selector ); + } + + return errors; }, // See https://api.jquery.com/category/selectors/, for CSS