2010-07-26 73 views
11

我想模擬Youtube Autocomplete Search體驗。用Jquery的自動完成功能點擊搜索

當查看器單擊列出的項目並自動繼續搜索所述項目時,我無法找到該選項。

我的編碼是如下:

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

上面的代碼將允許用戶點擊列出的項目,但是,它將填補了搜索框,而不是自動搜索。

回答

21

我想要類似的行爲,使用jQueryui的默認自動填充小部件。訣竅是使用'select'事件,但從您的選擇處理程序提交將不會給出所需的結果,因爲輸入不會有選擇填充。

以下代碼雖然適用於我:

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

(在上面的例子中,「自動完成」是指向完成源網址)

當輸入搜索框#是實際的輸入項,#searchform是它的母體形式。基本上,您需要在提交自己之前填寫輸入內容。

+0

如何在asp.net中執行此操作? – mutiemule 2013-07-01 08:10:16

0

你就不能這樣做:

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

如果您選擇列表上單擊事件觸發的形式提交搜索表單?

+0

剛回來嘗試這種解決方案,但顯然,表單不會提交。看起來還有另一個監聽者,因爲當該項目被點擊時,它將首先填寫輸入表單。 – Anraiki 2010-07-26 21:13:59

0

起初,我用簡單的東西,如Bassistance.de

我通過devBridge

devBridge有一個名爲選項轉移到使用其他庫「ONSELECT:」這讓我自動提交表單。

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(); } 
    }) 
}); 

我用這做工精細:)