2012-02-05 15 views
8

Tôi đang sử dụng autocomplete ui: over heregiữ ui autocomplete mở bất cứ lúc nào

Tôi cần autocomplete để được mở bất cứ lúc nào, vì vậy không nên đóng khi ở đâu đó trong cơ thể được nhấp. Tôi đã googled này nhưng tôi không thể tìm thấy bất cứ điều gì.

Trả lời

13

đây là một ví dụ làm việc như thế nào để làm điều đó: http://jsfiddle.net/4pk3V/

giữ hộp autocomplete của bạn mở bằng cách tìm kiếm đầu vào cùng một lần nữa bất cứ khi nào sự kiện gần được kích hoạt:

$("#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

Xóa '$ (" # focus(); 'vẫn giữ tự động mở và cho phép người dùng thực sự chọn một phần tử khác. – pete

+0

Cảm ơn vì nỗ lực :) – Youss

27

Hey xin lỗi vì sự chậm phản ứng!

Tôi cảm thấy điều này sạch hơn rất nhiều so với việc tập trung vào đầu vào và tìm kiếm nhiều lần.

Hãy thử này ...

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/

Hope this helps!

+2

Vì vậy, tốt hơn nhiều so với thực hiện các cuộc gọi ajax mỗi lần –

+2

liên kết demo không hoạt động nữa –

5

Ngoài ra còn có một CSS lựa chọn duy nhất:

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

Ví dụ:http://jsfiddle.net/Monstermensch/G7YYZ/1/


Bạn cũng nên thêm đoạn mã sau để tránh các vấn đề nếu trình duyệt được thay đổi kích cỡ (nguồn: Repositioning jQuery UI Autocomplete on browser resize):

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

Tùy chọn duy nhất css là tuyệt vời. Tôi sử dụng nó để ngăn chặn các widget tự động hoàn thành được đóng lại trong khi tôi đang cố gắng kiểm tra nó trong thanh tra. –

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