Select first jquery UI result automatically
Asked Answered
R

2

26

I am using jQuery Autocomplete to search a local database of cities. Here is the code:

$('#txt_search_city').autocomplete({
    source: url,
    delay: 0,
    autoFocus: true,
    select: function( event, ui ) {
        $( "#id_city" ).val( ui.item.id );
        $(this).closest('form').submit();
    },
    focus: function( event, ui ) { event.preventDefault(); }
});

I'd like the first returned value to be selected by default (like it works on facebook). So essentially, if they just hit enter they will trigger the selection of the first result.

I thought that's what autoFocus: true did, but it isn't working. Not showing errors, just not selecting the first result.

Thoughts?

Reviewer answered 11/2, 2012 at 19:39 Comment(0)
I
46

Autofocus will highlight the first record..

Your code would then just need to include autoFocus: true, like below:

$('#txt_search_city').autocomplete({
    source: url,
    delay: 0,
    autoFocus: true,
    select: function( event, ui ) {
        $( "#id_city" ).val( ui.item.id );
        $(this).closest('form').submit();
    },
    focus: function( event, ui ) { event.preventDefault(); }
});
Inhibitor answered 11/2, 2012 at 19:49 Comment(1)
awesome, exactly what I neededIzettaizhevsk
T
10

This seems to be outdated. I had the same problem. Just use .autocomplete({autoFocus: true}) I'm using jquery-ui-1.10.0.min and it works now. No plug is needed.

Toulouse answered 24/4, 2013 at 12:18 Comment(2)
It causes the first result to get focused , but it is not actually selectedCarbonari
Yes. The user must press enter to confirm the autocomplete. I don't think it's wise to auto select and load the first hit after the user typed only two or three characters.Toulouse

© 2022 - 2024 — McMap. All rights reserved.