Skip to content

Commit

Permalink
Autocomplete: Fix list traversal bug. Fixes #7269 - autocomplete: hol…
Browse files Browse the repository at this point in the history
…ding down arrow keys in Firefox does not traverse list

Use keypress event for listening for arrow keys because Firefox
and Opera do not repeat keydown events for these keys.
  • Loading branch information
treyhunner committed Apr 20, 2011
1 parent 5076f23 commit bdfc6d5
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions ui/jquery.ui.autocomplete.js
Expand Up @@ -53,24 +53,29 @@ $.widget( "ui.autocomplete", {
})
.bind( "keydown.autocomplete", function( event ) {
if ( self.options.disabled || self.element.attr( "readonly" ) ) {
suppressKeyPress = true;
return;
}

suppressKeyPress = false;
var keyCode = $.ui.keyCode;
switch( event.keyCode ) {
case keyCode.PAGE_UP:
suppressKeyPress = true;
self._move( "previousPage", event );
break;
case keyCode.PAGE_DOWN:
suppressKeyPress = true;
self._move( "nextPage", event );
break;
case keyCode.UP:
suppressKeyPress = true;
self._move( "previous", event );
// prevent moving cursor to beginning of text field in some browsers
event.preventDefault();
break;
case keyCode.DOWN:
suppressKeyPress = true;
self._move( "next", event );
// prevent moving cursor to end of text field in some browsers
event.preventDefault();
Expand Down Expand Up @@ -112,7 +117,28 @@ $.widget( "ui.autocomplete", {
if ( suppressKeyPress ) {
suppressKeyPress = false;
event.preventDefault();
return;
}

var keyCode = $.ui.keyCode;
switch( event.keyCode ) {
case keyCode.PAGE_UP:
self._move( "previousPage", event );
break;
case keyCode.PAGE_DOWN:
self._move( "nextPage", event );
break;
case keyCode.UP:
self._move( "previous", event );
// prevent moving cursor to beginning of text field in some browsers
event.preventDefault();
break;
case keyCode.DOWN:
self._move( "next", event );
// prevent moving cursor to end of text field in some browsers
event.preventDefault();
break;
}
})
.bind( "focus.autocomplete", function() {
if ( self.options.disabled ) {
Expand Down

0 comments on commit bdfc6d5

Please sign in to comment.