diff options
author | Scott González <scott.gonzalez@gmail.com> | 2010-07-30 12:59:33 -0400 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2010-07-30 12:59:33 -0400 |
commit | 90caa93a9b4b9b894b055cfb8dae0661ac7788b0 (patch) | |
tree | 690ffc4c6497359dea4b8f6689a315a2f4fe6afd | |
parent | 58ae7ce2fd20fb865c9087fb2eae0dbdb39fc9a7 (diff) | |
download | jquery-ui-90caa93a9b4b9b894b055cfb8dae0661ac7788b0.tar.gz jquery-ui-90caa93a9b4b9b894b055cfb8dae0661ac7788b0.zip |
Autocomplete: Respect the disabled option. Fixes #5619 - Autocomplete widget keeps looking for remote data even when it's disabled.
-rw-r--r-- | tests/unit/autocomplete/autocomplete_options.js | 18 | ||||
-rw-r--r-- | ui/jquery.ui.autocomplete.js | 12 |
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/unit/autocomplete/autocomplete_options.js b/tests/unit/autocomplete/autocomplete_options.js index ac4aeef35..2800fbab8 100644 --- a/tests/unit/autocomplete/autocomplete_options.js +++ b/tests/unit/autocomplete/autocomplete_options.js @@ -116,6 +116,24 @@ test("delay", function() { }, 100); }); +test("disabled", function() { + var ac = $("#autocomplete").autocomplete({ + source: data, + delay: 0, + disabled: true + }); + ac.val("ja").keydown(); + + same( $(".ui-menu:visible").length, 0 ); + + stop(); + setTimeout(function() { + same( $(".ui-menu:visible").length, 0 ); + ac.autocomplete("destroy"); + start(); + }, 50); +}); + test("minLength", function() { var ac = $("#autocomplete").autocomplete({ source: data diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index 855037824..75dfdc747 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -39,6 +39,10 @@ $.widget( "ui.autocomplete", { "aria-haspopup": "true" }) .bind( "keydown.autocomplete", function( event ) { + if ( self.options.disabled ) { + return; + } + var keyCode = $.ui.keyCode; switch( event.keyCode ) { case keyCode.PAGE_UP: @@ -88,10 +92,18 @@ $.widget( "ui.autocomplete", { } }) .bind( "focus.autocomplete", function() { + if ( self.options.disabled ) { + return; + } + self.selectedItem = null; self.previous = self.element.val(); }) .bind( "blur.autocomplete", function( event ) { + if ( self.options.disabled ) { + return; + } + clearTimeout( self.searching ); // clicks on the menu (or a button to trigger a search) will cause a blur event self.closing = setTimeout(function() { |