2012-02-05 8 views

Odpowiedz

13

oto przykład pracy, jak to zrobić: http://jsfiddle.net/4pk3V/

utrzymać pole autouzupełniania otwarty przeszukując samo wejście ponownie, gdy w pobliżu jest zdarzenie:

$("#input").autocomplete({ 
    source: availableTags, 

    close : function (event, ui) { 
     val = $("#comment").val(); 
     $("#input").autocomplete("search", val); //keep autocomplete open by 
     //searching the same input again 
     $("#input").focus(); 
     return false; 
    } 
}); 
+2

Usuwanie '$ (" # comment "). focus();' nadal utrzymuje autouzupełnianie otwarte i pozwala użytkownikowi wybrać inny element. – pete

+0

Dzięki za wysiłek :) – Youss

27

Hej Przepraszam za opóźnienie w odpowiedzi!

Uważam, że jest to o wiele czystsze niż wielokrotne ustawianie ostrości na danych wejściowych i wyszukiwanie.

Spróbuj tego ...

javascript:

$("#input1").autocomplete({ 
    source: availableTags, 
    close : function (event, ui) { 
     if (!$("ul.ui-autocomplete").is(":visible")) { 
      $("ul.ui-autocomplete").show(); 
     } 
    } 
}); 

DEMO: http://jsfiddle.net/dirtyd77/AJtvJ/

Nadzieja to pomaga!

+2

O wiele lepiej niż wykonywanie wywołań ajax za każdym razem, gdy link demo –

+2

już nie działa –

5

Istnieje również CSS tylko opcja:

<style> 
    .ui-autocomplete { display: inline-block !important; } 
</style> 

Przykład:http://jsfiddle.net/Monstermensch/G7YYZ/1/


Należy również dodać następujący kod, aby uniknąć problemów, jeśli przeglądarka jest zmieniany (źródło: Repositioning jQuery UI Autocomplete on browser resize):

$(window).resize(function() { 
    $("#input1").autocomplete("search"); 
}); 
+0

Opcja tylko css jest świetna. Używam go, aby uniemożliwić zamknięcie widgetu autouzupełniania podczas próby sprawdzenia go w inspektorze. –

Powiązane problemy