Autocomplete: Don't update the value of the text field until after setting focus. Fixes #5639 - Cursor jumps to beginning on select.

This commit is contained in:
Scott González 2010-07-19 14:36:40 -04:00
parent 5e3755af8a
commit 53489b502d

View File

@ -132,9 +132,12 @@ $.widget( "ui.autocomplete", {
}
},
selected: function( event, ui ) {
var item = ui.item.data( "item.autocomplete" );
var item = ui.item.data( "item.autocomplete" ),
setValue = false;
if ( false !== self._trigger( "select", event, { item: item } ) ) {
self.element.val( item.value );
// #5639 - if we set the value before setting focus
// the cursor will move to the beginning of the field in IE
setValue = true;
}
self.close( event );
// only trigger when focus was lost (click on menu)
@ -144,6 +147,9 @@ $.widget( "ui.autocomplete", {
self.previous = previous;
}
self.selectedItem = item;
if ( setValue ) {
self.element.val( item.value );
}
},
blur: function( event, ui ) {
if ( self.menu.element.is(":visible") ) {