4

я есть этот вход с функцией автозаполнения:JqueryUI автозаполнения: автофокусировка = правда не будет делать что-нибудь

.autocomplete({ 
        source: "jsonR.php", 
        minLength: 2, 
        select: function(event, ui) { 
          $(this).val(ui.item.value); 
          llamar('/includes/router.php?nomenu=1&que=view_item&id='+ui.item.id,'router'); 
          return false; 
        }, 
        autoFocus: true 
        ,open: function() { 
         $('.ui-autocomplete').addClass('searchBox'); 
        } 
      }) 

В основном я хочу функция, чтобы выбрать первый пункт, так что если пользователь нажимает ввести ищется первый но это не будет нависнуть/сфокусировать первый предложенный пункт,

любая идея почему?

пс: остальное работает отлично, тесто

+0

chec k ваш источник .. Я попробовал это с моим собственным источником. Он отлично работал. – Constantine

+0

Здесь гораздо лучшее объяснение http://stackoverflow.com/questions/8249509/jquery-ui-autocomplete-autofocus-not-working – misterakko

ответ

3

Скотт Гонсалес написал selectfirst плагин для этого.

Смотрите подробности здесь: http://forum.jquery.com/topic/autocomplete-automatically-select-first-item-in-dropdown-or-add-item-into-drop-down-menu

Вы можете скачать плагин здесь: https://github.com/scottgonzalez/jquery-ui-extensions/blob/master/autocomplete/jquery.ui.autocomplete.selectFirst.js

еще лучше, вот исходный код плагина :)

/* 
* jQuery UI Autocomplete Select First Extension 
* 
* Copyright 2010, Scott González (http://scottgonzalez.com) 
* Dual licensed under the MIT or GPL Version 2 licenses. 
* 
* http://github.com/scottgonzalez/jquery-ui-extensions 
*/ 
(function($) { 

$(".ui-autocomplete-input").live("autocompleteopen", function() { 
    var autocomplete = $(this).data("autocomplete"), 
     menu = autocomplete.menu; 

    if (!autocomplete.options.selectFirst) { 
     return; 
    } 

    menu.activate($.Event({ type: "mouseenter" }), menu.element.children().first()); 
}); 

}(jQuery)); 

ПРИМЕЧАНИЕ: для его использования просто добавьте эту строку в свой автозаполнение:

selectFirst: true, // auto selects first element 
+0

sweeeeet! с этим работает, но почему автофокус не делает ничего? благодаря! –

+1

Обратите внимание, что 'autoFocus: true,' будет фокусировать первый элемент, но не выбирать его. –

+0

Я вижу! У меня было некоторое концептуальное сочетание там ... спасибо большое! это работает, так как мне это нужно –