2011-10-19 48 views
0

我有一個表格在這裏,我可以得到的問題類別的文本字段硬編碼的項目自動完成:通過使用此jQuery代碼http://www.problemio.com/add_problem.php如何使用非硬編碼數據填充jQuery自動完成表單?

$("input#autocomplete").autocomplete({ 
    // Have to load stuff from db. 
    source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
}); 

我什麼不知道如何做的是使用通過ajax調用返回的類別名稱構造它。有人可以幫助解釋流程或發佈一些僞代碼來說明這通常是如何實現的嗎?

謝謝!

回答

4

您在尋找documentation,甚至包括三個這樣的例子。

自動完成功能可以自定義以使用各種數據源,通過 只需指定源選項。數據源可以是:

  • 與本地數據
  • 字符串,指定URL的Array
  • 回調

本地數據可以是字符串的簡單陣列,或者它包含 陣列中每個項目的對象,帶有標籤或值 屬性或兩者都有。標籤屬性顯示在建議 菜單中。在用戶 從菜單中選擇了某些內容後,該值將被插入到輸入元素中。如果只指定了一個屬性,則它將用於兩者,例如。如果您僅提供值屬性,則該值也將用作標籤。

當使用字符串時,自動填充插件希望該字符串指向一個將返回JSON數據的URL資源,即 。它可以在 相同的主機上或不同的主機上(必須提供JSONP)。請求 參數「term」被添加到該URL。數據本身可以是與上述本地數據相同的格式 。

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

  • 的請求對象,與所謂的「術語」一個單一的財產,這是指當前值在文本輸入。例如,當 用戶在城市字段中輸入「new yo」時,自動完成詞將 等於「new yo」。
  • 響應回調,它需要一個參數包含要提示給用戶的數據。此數據應根據 提供的術語進行過濾,並且可以採用上述 簡單本地數據(帶標籤/值/均爲 屬性的字符串數組或對象數組)的任何格式進行過濾。提供自定義源回調至 處理請求期間的錯誤非常重要。即使遇到錯誤,您也必須始終致電回覆 回撥。這確保小部件 始終具有正確的狀態。

標籤始終被視爲文本,如果你想在標籤是 視爲HTML可以使用斯科特·岡薩雷斯」 HTML擴展。演示 都集中在源選項的不同變體上 - 查找與您的用例匹配的 ,然後查看代碼。

相關問題