Autocomplete: Abort pending ajax requests when disabled and prevent handling results when disabled. Fixes #6752 - Menu may still render when autocomplete is disabled.

This commit is contained in:
Scott González 2010-12-17 10:48:17 -05:00
parent cf48a3c5c8
commit 0d0c86210c

View File

@ -227,6 +227,9 @@ $.widget( "ui.autocomplete", {
if ( key === "appendTo" ) {
this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )
}
if ( key === "disabled" && value && this.xhr ) {
this.xhr.abort();
}
},
_initSource: function() {
@ -241,7 +244,7 @@ $.widget( "ui.autocomplete", {
} else if ( typeof this.options.source === "string" ) {
url = this.options.source;
this.source = function( request, response ) {
if (self.xhr) {
if ( self.xhr ) {
self.xhr.abort();
}
self.xhr = $.ajax({
@ -292,7 +295,7 @@ $.widget( "ui.autocomplete", {
},
_response: function( content ) {
if ( content && content.length ) {
if ( !this.options.disabled && content && content.length ) {
content = this._normalize( content );
this._suggest( content );
this._trigger( "open" );