2011-11-07 17 views
5

Używam jquery autouzupełniania które ja podczas wypełniania z rubinem na zastosowaniu szyn i tworzę własny autcomplete tak:JQuery autouzupełnianie - Wybierz pierwszy element

$.widget("custom.code_complete", $.ui.autocomplete, { 
    _renderMenu: function(ul, items) { 
      var self = this, 
       currentCategory = ""; 
     $ul = ul; 
      $.each(items, function(index, item) { 
       if (item.category != currentCategory) { 
        ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>"); 
        currentCategory = item.category; 
       } 
       self._renderItem(ul, item); 
      }); 
     } 
    }); 

    $("#r-code").code_complete({ 
    source: "URL", 
    minLength: 2, 
    select: function(event, ui) { 
     $(".button-row").fadeIn(); 
     get_details(ui.item.url); 
    } 
    }); 

Mam przekierowanie użytkownika z innej strony strona z formularzem autouzupełniania z parametr w adresie URL, który jest kod używany do poszukiwania, oto JS zrobić wyszukiwania:

function ac_search(code) { 
    $("#r-code").val(code); 
    $("#r-code").code_complete('search', code); 
} 

ten wykonuje poszukiwanie doskonale i wyświetla listę rozwijaną z wynikami dół . Próbuję mieć skrypt, a następnie wybieram pierwszy wynik na liście. Próbowałem to robić za pomocą selektora:

$(".ui-menu-item:first a").click(); 

Znajduje prawidłowego elementu w liście autouzupełniania, ale gdy próbuję i zasymulować kliknięcie daje ten błąd:

TypeError: ui.item is null 

Czy jest możliwe aby programowo kliknij pierwszy element na liście wyników autouzupełniania?

Cheers

Eef

Odpowiedz

15

użycie autofokusa: prawdziwi

$(el).autocomplete({ 
     autoFocus: true 
     ... 
}); 
+0

Tak naprawdę nie potrzebują tego rozszerzenia, kiedy można po prostu ustawić opcję Autofocus jako prawdziwe. – Ziad

Powiązane problemy