2010-07-26 58 views
11

Tôi đang cố gắng mô phỏng trải nghiệm Tìm kiếm tự động hoàn thành của Youtube.Tìm kiếm khi nhấp vào với tính năng Tự động hoàn tất của Jquery

Tôi không thể tìm thấy tùy chọn khi người xem nhấp vào một mục được liệt kê và tự động được tiến hành để tìm kiếm mục đã nói.

mã của tôi là như sau:

<script type="text/javascript"> 
    var data = ['array1','array2']; 
    $(document).ready(function() { 
    $j("input#directorySearch").autocomplete(data); 
    }); 
</script> 

Đoạn mã trên sẽ cho phép người dùng click vào các mục niêm yết, tuy nhiên, nó sẽ điền vào hộp tìm kiếm chứ không phải tự động tìm kiếm.

Trả lời

21

Tôi muốn có hành vi tương tự, sử dụng tiện ích tự động hoàn thành mặc định của jQueryui. Bí quyết là sử dụng sự kiện 'chọn', nhưng việc gửi từ trình xử lý chọn lọc của bạn sẽ không cung cấp kết quả mong muốn, bởi vì đầu vào sẽ chưa có lựa chọn được điền.

Mã sau đây hoạt động cho tôi mặc dù:

$("input#searchbox").autocomplete({ 
    source: autocomplete, 
    select: function(event, ui) { 
    $("input#searchbox").val(ui.item.value); 
    $("#searchform").submit(); 
    } 
}) 

(trong ví dụ trên, 'autocomplete' là một url trỏ đến nguồn hoàn thành)

đâu đầu vào # hộp tìm kiếm là entry đầu vào thực tế, và #searchform là hình thức mẹ. Về cơ bản, bạn cần điền thông tin vào trước khi tự mình gửi.

+0

Làm cách nào để tôi thực hiện điều này trong asp.net? – mutiemule

0

có thể bạn không chỉ cần làm điều gì đó như:

$('.autocomplete ul li').live("click", function() { 
    $("form#search").submit(); 
}); 

Trong trường hợp sự kiện click trong danh sách lựa chọn của bạn gây nên một hình thức nộp cho các hình thức tìm kiếm của bạn ??

+0

Chỉ cần trở lại cố gắng giải pháp này nhưng rõ ràng, biểu mẫu sẽ không nộp. Có vẻ như có một người nghe khác, khi mục đó được nhấp vào thì nó sẽ điền vào biểu mẫu đầu vào trước tiên. – Anraiki

0

Ban đầu, tôi đã sử dụng một cái gì đó đơn giản như Bassistance.de

tôi chuyển sang sử dụng thư viện khác bằng cách devBridge

devBridge có một tùy chọn gọi là "onSelect:" cho phép tôi để tự động gửi biểu mẫu.

0
$(function() { 
$("#search").autocomplete(
    { 
     source:'/search-terms.php', 
     focus: function(event, ui) { 
      $("input#search").val(ui.item.label); 
     }, 
     select: function(event, ui) { 

      $("#searchform button").click(); } 
    }) 
}); 

Tôi đang sử dụng này làm việc tốt :)

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