13

Tôi đang sử dụng jQuery Autocomplete để tìm kiếm cơ sở dữ liệu cục bộ của các thành phố. Đây là mã:Chọn kết quả UI jquery đầu tiên tự động

$('#txt_search_city').autocomplete({ 
    source: url, 
    delay: 0, 
    autoFocus: true, 
    select: function(event, ui) { 
     $("#id_city").val(ui.item.id); 
     $(this).closest('form').submit(); 
    }, 
    focus: function(event, ui) { event.preventDefault(); } 
}); 

Tôi muốn giá trị trả về đầu tiên được chọn theo mặc định (giống như nó hoạt động trên facebook). Vì vậy, về cơ bản, nếu họ chỉ cần nhấn enter họ sẽ kích hoạt việc lựa chọn kết quả đầu tiên.

Tôi nghĩ đó là những gì autoFocus: true đã làm, nhưng nó không hoạt động. Không hiển thị lỗi, chỉ cần không chọn kết quả đầu tiên.

Suy nghĩ?

+0

Có vẻ ổn với tôi. . . : P – daxnitro

Trả lời

25

Autofocus sẽ làm nổi bật kỷ lục đầu tiên ..

Mã của bạn sau đó sẽ chỉ cần phải bao gồm autoFocus: true, như dưới đây:

$('#txt_search_city').autocomplete({ 
    source: url, 
    delay: 0, 
    autoFocus: true, 
    select: function(event, ui) { 
     $("#id_city").val(ui.item.id); 
     $(this).closest('form').submit(); 
    }, 
    focus: function(event, ui) { event.preventDefault(); } 
}); 
+0

Mã nằm trong câu hỏi và câu trả lời giống nhau. –

10

này có vẻ là lỗi thời. Tôi đã từng gặp vấn đề tương tự. Chỉ cần sử dụng .autocomplete({autoFocus: true}) Tôi đang sử dụng jquery-ui-1.10.0.min và nó hoạt động ngay bây giờ. Không cần cắm.

+3

Nó làm cho kết quả đầu tiên được tập trung, nhưng nó không thực sự được chọn –

+1

Có. Người dùng phải nhấn enter để xác nhận tự động hoàn tất. Tôi không nghĩ rằng nó là khôn ngoan để tự động lựa chọn và tải hit đầu tiên sau khi người dùng gõ chỉ có hai hoặc ba ký tự. –

+0

vâng, tác phẩm này – Irshu