2012-12-03 37 views
13

Tôi đang sử dụng jQuery UI Autocomplete với một số AJAX (dữ liệu không được kéo cho đến sau khi chúng ngừng nhập). Tôi muốn làm cho nó như vậy một khi dữ liệu được tìm thấy, Autocomplete sau đó sẽ bật lên như là một kết quả tìm kiếm. Điều này làm việc, tuy nhiên chỉ khi tôi bắt đầu gõ lại (thả xuống không kích hoạt cho đến khi tôi gõ vì nó không được khởi tạo cho đến sau khi tôi ngừng gõ).Kích hoạt jQuery Tự động hoàn thành thủ công

Mã của tôi:

var availableTags = [ 
    "Perl", 
    "PHP", 
    "Python", 
    "Ruby" 
]; 
$('input#mainSearchBox').autocomplete({ 
    source: availableTags, 
     minLength: 0 
}); 
    $('input#mainSearchBox').data('autocomplete').menu.active; 

Phần cuối cùng là một nỗ lực để kích hoạt autocomplete, nhưng nó không thành công.

+0

Bạn đang sử dụng _autocomplete với một số AJAX_. Trong trường hợp đó, cửa sổ bật lên sẽ xuất hiện khi (i) bạn đã nhập ký tự minLength (ii) trễ mili giây đã trôi qua kể từ lần nhấn phím cuối cùng của bạn (iii) các kết quả Ajax đã được tìm nạp và xử lý. Bạn có chắc là bạn hiểu điều này không? –

Trả lời

30

Các search method nên làm các trick:

$('input#mainSearchBox').autocomplete("search"); 

Fiddle

+1

Ah! OMG, tôi đã sử dụng: \t \t $ ('input # mainSearchBox'). Autocomplete ('search', 'demo-value'); Tôi nên xóa ... – PolishHurricane

+0

haha, minLength là chìa khóa ở đây. không làm việc mà không có nó. –

4

Bạn có thể sử dụng kịch bản sau đây để chuyển autocomplete bằng tay:

var textbox = $('input#mainSearchBox'); 
var autocompleteBox = textbox.autocomplete('widget'); 

// toggle the autocomplete widget 
autocompleteBox.is(':hidden') ? 
    textbox.autocomplete('search', textbox.val()).focus() : 
    autocompleteBox.hide(); 

Mã này có thể được tìm thấy trong nguồn gốc của combobox example trên trang web jquery autocomplete demo (dòng 127-141).

Các vấn đề liên quan