2011-01-23 31 views
3

我使用jQuery用戶界面自動完成,這是低於jQuery的自動完成「搜索」的方法

 
var opt_source = {...} 
var options = { 
      minLength: 0, 
      source: opt_source, 
      search: "aPreDefinedString" 
     }; 
$(".searchable_input").autocomplete(options); 

代碼我understanding的是,它現在應該尋找aPreDefinedString;這不會發生,而是在本地搜索源userInput。有人能指出我要去哪裏嗎?

+0

您是否使用jQuery UI庫來進行除自動完成以外的任何其他操作? – jondavidjohn 2011-01-23 22:08:06

+0

@jondavidjohn,標籤,幾個動畫。 – 2011-01-23 22:16:59

+0

好的,很好,很多時候我看到人們利用整個UI庫,只使用可以通過第三方插件獲得的功能。將指向你,但看起來你正在利用UI。 – jondavidjohn 2011-01-23 22:18:33

回答

6

我想你在autocomplete部件上混合了searcheventsearchmethod。您可以在用於初始化窗口小部件的options對象(您正在執行的操作)中指定事件處理函數search事件

你會調用search方法的方法是這樣的:

$(".searchable_input").autocomplete("search" , "aPreDefinedString"); 

這將手動搜索自動完成。

7

OK,這是我必須做它的工作

 
var opt_source = {..}; 

var options = { 
      minLength: 0, 
      source: function(request, response){ 
       response(opt_source); 
      } 
     }; 
$(".searchable_input").autocomplete(options); 

這似乎覆蓋內置的搜索(我希望他們不要打破它在未來的版本)

從jQuery UI文檔

第三種變體回調提供了最大的靈活性,可用於將任何數據源連接到自動完成。回調得到兩個參數:

一個請求對象,帶有一個名爲「term」的單個屬性,它引用了當前在文本輸入中的值。例如,當用戶在城市字段中輸入「新喲」時,自動完成詞將等於「新喲」。 響應回調,它需要一個參數包含要提示給用戶的數據。

此數據應基於所提供的術語進行過濾,並且可以是任何的上述簡單的本地數據(字符串-Array或對象的陣列與標籤/值/兩種性質)中描述的格式。在請求期間提供自定義源回調以處理錯誤時,這很重要。即使遇到錯誤,您也必須始終調用響應回調。這確保小部件總是有正確的狀態

0

我的代碼是這樣的,它的工作。

var availableTags = ['aa','bb','cc']; 

$("#filterinput").autocomplete({ 
         source: availableTags, 
         autoFocus: true, 
        }); 

$("#filterinput").on("autocompletesearch", function(event, ui) { 
         console.log($(this).val()); 
        });