diff options
author | kborchers <k_borchers@yahoo.com> | 2011-11-30 10:46:31 -0600 |
---|---|---|
committer | kborchers <k_borchers@yahoo.com> | 2011-11-30 10:49:13 -0600 |
commit | b539e2e5c8528fb1cfaa241fd509fc1ccf65a095 (patch) | |
tree | 6c4ef7aed8fbaaaaff4ea2e961d7db5428fce7bb /ui/jquery.ui.autocomplete.js | |
parent | 53ea93327e9040b7472e8fd2af2abaea19058e4a (diff) | |
parent | afdc577e9c26d6571e934a8fef892f7fbe3619c6 (diff) | |
download | jquery-ui-b539e2e5c8528fb1cfaa241fd509fc1ccf65a095.tar.gz jquery-ui-b539e2e5c8528fb1cfaa241fd509fc1ccf65a095.zip |
Merge branch 'master' into selectmenu
Diffstat (limited to 'ui/jquery.ui.autocomplete.js')
-rw-r--r-- | ui/jquery.ui.autocomplete.js | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index dbda2058e..bd415aa2b 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -58,6 +58,7 @@ $.widget( "ui.autocomplete", { suppressKeyPressRepeat, suppressInput; + this.isMultiLine = this.element.is( "textarea,[contenteditable]" ); this.valueMethod = this.element[ this.element.is( "input,textarea" ) ? "val" : "text" ]; this.element @@ -92,15 +93,11 @@ $.widget( "ui.autocomplete", { break; case keyCode.UP: suppressKeyPress = true; - self._move( "previous", event ); - // prevent moving cursor to beginning of text field in some browsers - event.preventDefault(); + self._keyEvent( "previous", event ); break; case keyCode.DOWN: suppressKeyPress = true; - self._move( "next", event ); - // prevent moving cursor to end of text field in some browsers - event.preventDefault(); + self._keyEvent( "next", event ); break; case keyCode.ENTER: case keyCode.NUMPAD_ENTER: @@ -151,14 +148,10 @@ $.widget( "ui.autocomplete", { 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(); + self._keyEvent( "previous", event ); break; case keyCode.DOWN: - self._move( "next", event ); - // prevent moving cursor to end of text field in some browsers - event.preventDefault(); + self._keyEvent( "next", event ); break; } }) @@ -495,6 +488,15 @@ $.widget( "ui.autocomplete", { _value: function( value ) { return this.valueMethod.apply( this.element, arguments ); + }, + + _keyEvent: function( keyEvent, event ) { + if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) { + this._move( keyEvent, event ); + + // prevents moving cursor to beginning/end of the text field in some browsers + event.preventDefault(); + } } }); |