Skip to content

Commit 098dd14

Browse files
kborchersscottgonzalez
authored andcommitted
Autocomplete: Added check to prevent accidental focus of menu-item on page load in Firefox. Fixed #7024 - Autocomplete menu options are activated even if mouse is not moved.
1 parent 0adc6f5 commit 098dd14

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

ui/jquery.ui.autocomplete.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ $.widget( "ui.autocomplete", {
5757

5858
this.isMultiLine = this.element.is( "textarea,[contenteditable]" );
5959
this.valueMethod = this.element[ this.element.is( "input,textarea" ) ? "val" : "text" ];
60+
this.isNewMenu = true;
6061

6162
this.element
6263
.addClass( "ui-autocomplete-input" )
@@ -220,6 +221,20 @@ $.widget( "ui.autocomplete", {
220221
}
221222
},
222223
menufocus: function( event, ui ) {
224+
// #7024 - Prevent accidental activation of menu items in Firefox
225+
if ( this.isNewMenu ) {
226+
this.isNewMenu = false;
227+
if ( event.originalEvent && /^mouse/.test(event.originalEvent.type) ) {
228+
this.menu.blur();
229+
230+
this.document.one( "mousemove", function() {
231+
$( event.target ).trigger( event.originalEvent );
232+
});
233+
234+
return;
235+
}
236+
}
237+
223238
// back compat for _renderItem using item.autocomplete, via #7810
224239
// TODO remove the fallback, see #8156
225240
var item = ui.item.data( "ui-autocomplete-item" ) || ui.item.data( "item.autocomplete" );
@@ -422,6 +437,7 @@ $.widget( "ui.autocomplete", {
422437
if ( this.menu.element.is(":visible") ) {
423438
this.menu.element.hide();
424439
this.menu.blur();
440+
this.isNewMenu = true;
425441
this._trigger( "close", event );
426442
}
427443
},

0 commit comments

Comments
 (0)