13

Я использую автозаполнение jQuery для поиска локальной базы данных городов. Вот код:Выберите первый результат пользовательского интерфейса jQuery

$('#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(); } 
}); 

Я хочу, чтобы первое возвращаемое значение было выбрано по умолчанию (например, оно работает на facebook). По сути, если они просто попали в строку ввода, они инициируют выбор первого результата.

Я думал вот что autoFocus: true сделал, но не работает. Не показывать ошибки, просто не выбирая первый результат.

Мысли?

+0

Выглядит хорошо для меня. , , : P – daxnitro

ответ

25

Autofocus выделится первая запись ..

Ваш код, то просто нужно будет включать autoFocus: true, как показано ниже:

$('#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(); } 
}); 
+0

Код в вопросе, и ответ такой же. –

10

Это кажется устаревшим. У меня такая же проблема. Просто используйте .autocomplete({autoFocus: true}) Я использую jquery-ui-1.10.0.min, и теперь он работает. Штекер не требуется.

+3

Это заставляет первый результат сфокусироваться, но на самом деле он не выбран –

+1

Да. Пользователь должен нажать enter, чтобы подтвердить автозаполнение. Я не думаю, что было бы разумно автоматически выбирать и загружать первое попадание после того, как пользователь набрал только два или три символа. –

+0

да, это работает – Irshu